是否可以在不调用onPause()的情况下终止应用程序?

时间:2017-01-21 19:31:23

标签: android

我知道在onPause()方法中保存持久数据是保存数据最安全的途径,因为onStop()并不总是被调用。

但是,是否可以在不调用onPause()的情况下杀死某个应用并直接转到onStop()

最安全的最佳方法是在onPause() AND onStop()方法中保存数据吗?

5 个答案:

答案 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。 此图显示每个活动的生命周期。