我的代码中有以下流程:
Activity1 : startActivity(Activity2) --->
Activity2: startActivity(Activity3) --->
Activity3: startService(MyService) --->
MyService: startActivity(Activity4)
上面的每个活动都显示一个视图,并代表 4 步设置中的一个步骤。最后的Activity——Activity 4
在里面完成一些设置工作后启动MyService
,基本上告诉用户,
"The service has started, you can close the application by pressing Back or Home button"
当用户按下 Back 或 Home 时,我想销毁Activities 1-4
,并且只有 MyService
运行。此外,如上所述停止应用程序后,当用户通过菜单导航回应用程序并启动它时,我将检查是否MyService
已在运行。如果它已经在运行,我不想显示Activities 1-3
,我想显示另一个Control Panel View
(另一个活动),它说,
"Dude, the service is already running, do you want to Stop or Restart it?"
此视图将有一个停止和重新启动按钮,以执行相应的任务。
我的问题:
当按下返回或主页时,如何从活动 4 中安全地停止活动 1-4?我的想法是为
static stopActivity()
每个 Activity 添加一个方法,并从Activity[1-3].stopActivity()
oronBackPressed()
调用Activity4。然后在 each 内部,我会调用,从而结束每个 Activity。但是这样做安全有效吗?onPause()
stopActivity()
finish()
我上面说明的流程,它是做事的最佳方式,还是有更清洁的方式?我已经
BroadcastReceivers
注册了这些Activity,所以我需要为每个Activity执行干净的退出,没有泄漏的接收器,或者更糟糕的是,由于不干净的退出策略导致应用程序崩溃或影响用户的手机。
感谢您的建议。