我知道在onPause()
方法中保存持久数据是保存数据最安全的途径,因为onStop()
并不总是被调用。
但是,是否可以在不调用onPause()
的情况下杀死某个应用并直接转到onStop()
?
最安全的最佳方法是在onPause()
AND onStop()
方法中保存数据吗?
答案 0 :(得分:1)
但是,是否有可能在不调用onPause()并直接转到onStop()的情况下杀死应用程序?
没有。如果调用onStop()
,则可以保证已调用onPause()
。
答案 1 :(得分:1)
您需要了解何时实际调用onPause和onStop。
只要应用程序不再是活动的Activity,就会调用onPause(只要它不再处于活动状态,但在实际启动下一个活动之前,它就会被调用)。
当Activity完全脱离屏幕时,会调用onStop。因此,如果调用onStop,则已经调用onPause,缺少框架错误。
至于保存数据 - onPause或onStop通常会起作用。通常,规则只是将onStop与onStart和onPause与onResume正确配对。在某些情况下会调用onPause但不会调用onStop,但这通常是因为短暂的透明背景活动会弹出您的应用,而不是因为onStop永远不会被调用。所以onStop使用得更多,因为onPause会让你比需要更频繁地保存。
答案 2 :(得分:0)
不,将始终执行onPause()方法。当您的活动失去焦点,停止或被摧毁时,它是唯一可以保证被调用的方法。
答案 3 :(得分:0)
没有。任何时候您的应用程序进入后台或您更改活动onPause将被触发。没有没有调用onPause但是onStop是。
的情况如果你的应用程序崩溃了,那么两个都不会被调用。
答案 4 :(得分:0)
来自Android's Activity documentation。 此图显示每个活动的生命周期。