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

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

不要使用 startActivityForResult。您可以通过不同的方式实现相同的功能。将结果作为通知的附加内容传递。在活动 B 的恢复中获取此结果。

最新更新