我有Activity
和IntentService
Activity
调用IntentService
,当IntentService
完成后,我想重新启动活动。但只有当前它在屏幕上。当它再次打开(仅onResume()
)被调用,并且没有创建新实例时,它也应该重新启动。
那么练习这个的最佳方法是什么?
答案 0 :(得分:0)
如果活动仍在屏幕上,则无需重新启动它。您可以注册BroadcastReceiver
来处理IntentService
完成工作后发送的广播。
如果活动已完成或未在屏幕上显示,则使用startActivity
并创建新实例是安全的(并非不良做法)。它会使你的历史保持一致。
如果您确实想拥有一个且仅有一个活动实例,则可以将以下行添加到清单中的活动代码中。
android:launchMode="singleTask"
或
android:launchMode="singleInstance"
This post解释了区别,如果您想了解详细信息。