1

是否可以使用状态栏通知中的startActivityForResult()?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 
+1

如果它处于通知中,哪个活动会得到结果?考虑通知不属于该活动创建它。 – kingston 2012-04-08 08:12:44

+0

@herschel通知是从Activity A创建的,所以我认为Activity A会在onActivityResult()方法中得到结果。无论如何,这是错的吗? – Alabhya 2012-04-08 10:24:51

+0

是的,我认为这是错误的。活动A可能不在那里了。 – kingston 2012-04-08 21:42:35

回答

3

我认为当通过打开通知打开活动B并且关闭后,您应该从活动B开始活动A. 您可以传递返回值以用于从活动B启动活动A的意图。

1

不使用startActivityForResult。您可以通过不同的方式实现相同的功能。 将结果作为额外的通知传递给您。在活动B的onResume中获得此结果。