问题
场景:有一个包含 ActivityA , ActivityB 和 ActivityC 三个 Activity 的 APP,在 ActivityA 按返回键可以退出APP,其他 Activity 按返回键只能回到上一个 Activity。在 ActivityC 强制退出1后,再次启动 APP 直接打开 ActivityC 如何实现?
回答
实现思想
- 每次切换 Activity 后,记录下当前 Activity。APP 退出后,记录的就是退出前的最后一个 Activity。
- 每次启动 APP 后,检查上次退出时的 Activity。如果是 ActivityC,那么直接启动 ActivityC;否则正常启动。
实现细节
- 对每个 Activity 编号后,可以使用 SharedPreferences 对象来存取。
- 可以在 Activity 生命周期方法 onStop()2 中执行页面编号的保存任务。
- 由于每个 Activity 都涉及页面编号的保存,可以将这一逻辑写在父类中。
附
说明
[1] 强制退出:打开近期任务,滑动 APP 的方式退出。
[2] 部分国内定制的 Android 系统,点击菜单键打开近期任务可能不会触发 onStop() 方法。
测试设备参数
操作系统:MIUI 12.0.4 稳定版 (Android 10)
网友评论