选择通知时的startActivityForResult()

时间:2012-04-08 07:44:25

标签: android android-intent android-activity android-notifications

是否可以从状态栏通知中使用startActivityForResult()?

假设我有一个活动A,在某些事件中使用startActivityForResult()启动活动B.现在,当它在后台时,在事件中显示通知。现在,在选择通知时,如何为结果启动活动B?

我确实知道活动A应该有一个在后台运行的服务,但我想即使在这种情况下,同样的问题也适用。

以下是通知的代码。这是在活动A中。

    Notification notification = new Notification(R.drawable.ic_launcher, "New Notification", System.currentTimeMillis());

    notification.flags = Notification.FLAG_AUTO_CANCEL;
    CharSequence contentTitle = "My Notification Title";
    CharSequence contentText = "My Notification Text";
    Intent notificationIntent = new Intent(this, ActivityB.class);

    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);

    notification.setLatestEventInfo(getApplicationContext(), contentTitle, contentText, contentIntent);

    nm.notify(1, notification);  //1 = id

2 个答案:

答案 0 :(得分:3)

我认为您应该通过打开通知然后关闭来打开活动B时从活动B开始活动A. 您可以在用于从活动B开始活动A的intent中传递返回值。

答案 1 :(得分:1)

不要使用startActivityForResult。您可以以不同的方式实现相同的功能。 通过结果将结果作为额外通知。将此结果输入活动B的onResume。