我注意到Android开发者活动部分自我启动应用程序以来已经更新,但我仍然不清楚最简单的活动生命周期是什么.
据我所知:
onCreate,onResume和onPause是必不可少的.
在onPause之后的任何时候都可以删除该活动,因此我应该将整个应用程序状态保存到onPause文件中,而不是依赖onStop或onDestroy.此外,onSaveInstanceState在每个onPause之前都没有被调用,因此不值得使用.
而不是尝试编写大量代码来处理所有场景,为什么不在onPause结束时销毁Activity?
然后,生命周期将在onCreate和onResume处于活动状态之前,然后onPause处于非活动状态时.不需要其他方法.
我使用onCreate调用setContentView并设置视图侦听器,但其他所有内容都将放在onResume中,包括从文件加载恢复的状态?如前所述,onPause会将状态保存到文件并销毁活动.
据我所知,这方面的唯一缺点可能是当屏幕上显示弹出窗口时,活动将被删除,并且必须在弹出窗口关闭时重新创建,这意味着活动将不会在弹出窗口后面显示(尽管我没有测试过这个)
重新启动活动可能需要更长的时间,但由于系统可能在没有任何通知的情况下删除了活动,因此无论如何都必须保存整个状态.
有什么想法吗?
更新:我想我想到的是"首页"活动所谓的游戏活动.当玩家点击"播放"时,首页活动会调用游戏活动
游戏活动将在onCreate中设置其视图和监听器等,并且在onResume中它将加载包含游戏状态的文件,或者如果不存在文件则开始新游戏.
onPause游戏,它将游戏状态写入文件,然后无论游戏活动发生什么(没有,或被停止/销毁,或其他),onResume方法将始终从文件中重新加载所有数据.
那是我在想什么,如果这有道理的话?
Update2:我已经设计了一个简单的解决方案,我已在下面的答案中记录,如果有人感兴趣的话!
它不支持Android Activity Lifecycle'Paused'和'Stopped'状态.一旦它不再显示它就会自动杀死并且必须手动重启,但它会从你离开的地方继续进行!