如果Activity正在运行,则从IntentService重新启动Activity

时间:2013-08-06 13:44:51

标签: android android-activity intentservice

我有ActivityIntentService

Activity调用IntentService,当IntentService完成后,我想重新启动活动。但只有当前它在屏幕上。当它再次打开(仅onResume())被调用,并且没有创建新实例时,它也应该重新启动。

那么练习这个的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

如果活动仍在屏幕上,则无需重新启动它。您可以注册BroadcastReceiver来处理IntentService完成工作后发送的广播。

如果活动已完成或未在屏幕上显示,则使用startActivity并创建新实例是安全的(并非不良做法)。它会使你的历史保持一致。

如果您确实想拥有一个且仅有一个活动实例,则可以将以下行添加到清单中的活动代码中。

android:launchMode="singleTask"

android:launchMode="singleInstance"

This post解释了区别,如果您想了解详细信息。