setFullScreenIntent第二次不起作用

时间:2013-07-12 13:58:01

标签: android notifications android-activity

我在android中有一个应用程序,我希望在某些情况下将活动带到前台。我使用NotificationManager。这是我的代码。问题是,活动在第一时间成功实现,但事实并非如此。此外,此代码从服务运行。

Intent notificationIntent = new Intent(context, MainActivity.class);
            PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);

            NotificationCompat.Builder mBuilder =
                        new NotificationCompat.Builder(this)
                        .setSmallIcon(R.drawable.ic_launcher)
                        .setContentIntent(contentIntent)
                        .setContentTitle("Bring me front!")
                        .setContentText("Bring me!!! BRING!!!")
                        .setFullScreenIntent(contentIntent, true);

            NotificationManager mNotificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
            mNotificationManager.notify(0, mBuilder.build());

3 个答案:

答案 0 :(得分:2)

要检查的几件事情:

  1. 您的意图可能需要FLAG_ACTIVITY_NEW_TASK(可能FLAG_ACTIVITY_CLEAR_TOP)以确保将活动带到前线。
  2. 请确保您不会尝试多次重复使用相同的PendingIntent;每次发布此通知时,您都需要构建一个新的PendingIntent,以便与fullScreenIntent一起使用。

答案 1 :(得分:1)

NotificationManager具有(未记录的)行为,如果您发布的新通知与已经处于活动状态的ID相匹配,它将忽略 fullScreenIntent字段。

答案 2 :(得分:0)

我有类似的问题。就我而言,我错过了两件事:

  1. 清单中的USE_FULL_SCREEN_INTENT权限。
  2. 必须在电话设置中设置密码或图形图案。按下解锁按钮后,UI必须立即对用户不可用。然后显示全屏活动。