我有一个Activity
和一个IntentService
Activity
调用IntentService
完成后,IntentService
我想重新启动 Activity。但前提是它当前在屏幕上。当它再次打开时(仅onResume()
)调用,并且没有创建新实例,它也应该重新启动。
那么练习这个的最佳方法是什么?
我有一个Activity
和一个IntentService
Activity
调用IntentService
完成后,IntentService
我想重新启动 Activity。但前提是它当前在屏幕上。当它再次打开时(仅onResume()
)调用,并且没有创建新实例,它也应该重新启动。
那么练习这个的最佳方法是什么?
如果活动仍在屏幕上,则不必重新启动它。您可以注册一个BroadcastReceiver
将在您IntentService
完成工作后处理发送的广播。
如果活动已完成或不在屏幕上,则使用startActivity
和创建新实例是安全的(并且不是坏习惯)。这将使您的历史保持一致。
如果您真的想要一个且唯一的活动实例,您可以将以下行添加到清单中的活动标签中。
android:launchMode="singleTask"
或者
android:launchMode="singleInstance"
如果您想了解详细信息,这篇文章将解释差异。