我正在开发一个应用程序,我在其中创建了三个活动
以下是这些Activties所称的过程:
现在当我的Second_Activity在Main_Activity之后调用并在按下电源按钮时调用OnPause我的活动调用
OnPause -> OnStop -> OnCreate -> OnResume -> OnRestart -> OnDestroy
当我按下屏幕上的电源按钮OnResume -> onCreate -> OnRestart
来电时。
由于一次又一次地调用OnCreate我的活动没有正确执行任务。
请有人帮忙吗?
答案 0 :(得分:2)
当方向再次改变时,调用Oncreate。这就是为什么你的活动第一次没有正确运行的原因。
要修复此问题,您需要在宣布活动的清单文件中声明此内容:
android:configChanges="keyboardHidden|orientation"
对于Android 3.0及以上版本
android:configChanges="orientation|screenSize|keyboardHidden"
当应用程序处于横向状态并且手机被锁定时,应用程序会重定向到纵向,因此再次调用onCreate。为了防止这种情况,请添加上述行。
答案 1 :(得分:1)
你永远不应该依赖你的任务堆栈来维护你需要的所有状态。相反,使用onSaveInstanceState()
保存活动的状态,并让每个活动根据此状态或传递给它的意图来执行操作。通过这种方式设计您的活动流程,系统可以随意创建/销毁活动(通常基于内存需求),您的活动将能够从中断的地方开始。