【问题标题】:startActivityForResult() on selecting Notification选择通知时的 startActivityForResult()
【发布时间】:2012-04-08 07:44:24
【问题描述】:

是否可以从状态栏通知中使用 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

【问题讨论】:

  • 如果它在通知中,哪个活动会得到结果?考虑通知不属于创建它的活动。
  • @herschel 通知是从活动 A 创建的,所以我假设活动 A 会在其 onActivityResult() 方法中获得结果。还是错了吗?
  • 是的,我认为这是错误的。 Activity A 可能不再存在了。

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2017-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多