Android Activity-Lifecycle:onPause和onDestroy之间的关系

时间:2014-09-26 05:00:27

标签: android lifecycle activity-lifecycle

onPause和OnDestroy之间的相互关系是什么?为什么声明onPause时,可能不会调用onDestroy?你如何确保之所以会这样回答是因为:我试图在用户决定终止应用时将用户注销,显然,使用onDestroy是不可取的,因为只有在设备内存不足且需要某些实例时才会调用它。我不确定这个实现如何在onPause实现中起作用

2 个答案:

答案 0 :(得分:2)

您不应该使用 onPause 注销,如果您从活动A登录,并且尝试在活动A的 onPause 方法中注销,那么当您从活动A转到另一个活动B 时,用户将自动注销。因为当你转到活动B时,会调用活动A的 onPause 方法。

尝试了解Activty的生命周期,为了实验,在方法中添加 Log.d(" youActivityName","方法名称"); 您的活动,并使用您的应用程序/项目,以便您可以了解被调用的方法何时。

我建议使用按钮,这将关闭所有活动并从应用程序注销。

检查此链接: https://stackoverflow.com/a/14002030/4082061

How to close all the activities of my application?

答案 1 :(得分:0)

编辑:使用onDestroy函数

@Override
protected void onDestroy() {
    super.onDestroy();
    //Code
}

onPause():在系统即将开始恢复上一个活动时调用。这通常用于将未保存的更改提交到持久数据,停止动画以及可能消耗CPU等的其他事情。此方法的实现必须非常快,因为在此方法返回之前,下一个活动将不会恢复。 如果活动返回到前面,则后跟onResume();如果用户不可见,则返回onStop()。

onDestroy():在您的活动被销毁之前收到的最终通话。这可能是因为活动正在完成(有人在其上调用finish(),或者因为系统暂时销毁此活动实例以节省空间。您可以使用isFinishing()方法区分这两种情况。