在Android中使用通知将活动置于正面

时间:2012-09-21 11:40:46

标签: android android-activity notifications

我提出了通知。我想要的是,当用户点击通知时,我的活动被带到前面而不创建它的新实例。 为此,我添加了标志REORDER_TO_FRONT,但是当我点击通知时仍然会调用oncreate而不是onNewIntent。

这是我的代码 -

        int icon = R.drawable.android;
        long when = System.currentTimeMillis();
        CharSequence text = "new message";
        CharSequence contentTitle = stanza.getFrom();  // message title
        CharSequence contentText = stanza.getBody();      // message text

        Intent notificationIntent = new Intent(context, ChatBox.class);
        notificationIntent.putExtra("buddyid",stanza.getFrom());
        notificationIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
        PendingIntent contentIntent = PendingIntent.getActivity(context, 0,notificationIntent, 0);


// the next two lines initialize the Notification, using the configurations above
        Notification notification = new Notification(icon, text, when);
        notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
        mNotificationManager.notify(1,notification);

2 个答案:

答案 0 :(得分:0)

你试过了吗?

Intent.FLAG_ACTIVITY_CLEAR_TOP

使用notificationIntent.addFlag();

答案 1 :(得分:0)

我的解决方案是制作一个广播接收器,监听通知触发的广播动作。所以基本上:

  1. 通知触发广播操作,并附加要启动的活动的名称。

  2. 广播接收器在单击通知时捕获此信息,然后使用FLAG_ACTIVITY_REORDER_TO_FRONT标志创建启动该活动的意图

  3. 活动被带到活动堆栈的顶部,没有重复。