【问题标题】:Android: How to notify activity of an other activities finish()Android:如何通知其他活动完成()的活动
【发布时间】:2012-12-05 14:58:05
【问题描述】:

我确实有一项活动,但我无权访问(我们在 AIR ANE 工作)。从这个活动中,我们正在处理的活动被触发,但我们不能使用 onActivityResult,因为我们无权访问调用活动。我该如何解决这个问题?如果我通过finish() 关闭第二个活动,则发送事件为时已晚。据我所知,如果我之前发送过它,底层活动仍然暂停。我考虑过使用带有 postDelayed 的 Handler,但我认为,时间安排会使这种方法变得混乱。有没有类似 didFinish() 的东西,一旦下一个活动已经恢复就会被调用?

任何想法表示赞赏! 谢谢,马库斯

【问题讨论】:

    标签: android events android-activity activity-finish


    【解决方案1】:

    最简单的方法是在调用finish() 之前先send a broadcast 并在您希望收到通知的地方注册BroadcastReceiver

    【讨论】:

    • 那不需要访问权限,我没有?基本上,我可以向扩展上下文发送通知,它会转发它,就这样 8/ 有什么建议吗?
    • 在我看来,在完成之前发送广播不是我的问题,而是在原始活动中注册广播,然后开始后一个?
    • 确实,当调用finish() 时另一个Activity 将被暂停,并且您的接收器将被取消注册。但是,您可以在 Service 或始终处于活动状态的 Application 子类中注册您的接收器。
    • 我目前正在处理不同的场景。我实例化一个新服务,然后启动活动。现在我必须弄清楚如何从活动通信回服务。由于该服务不是活动,因此不应阻止原始服务。所以,我也许可以从那里发送急需的事件。知道如何在活动的完成()之前从活动与服务通信吗?
    • 如果你在你的服务中注册你的 BroadcastReceiver 并在finish()之前从你的活动中发送一个广播你会没事的。
    【解决方案2】:

    你可以在调用finish()之前使用toast、alert甚至广播接收器;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-11
      • 2013-03-20
      相关资源
      最近更新 更多