Cor*_*urn 5 android android-activity
我有一个运行4.4.2的股票Nexus 5(如果重要的话使用ART),我发现了一个有趣的场景.我有这个作为我的onDestroy():
@Override
protected void onDestroy() {
super.onDestroy();
t.setText("onDestroy");
t.show();
}
Run Code Online (Sandbox Code Playgroud)
这是一个面向GPS的应用程序,所以我起来走动.我正在使用此问题中提到的技术来显示许多调试Toast消息.
无论如何,当我旋转我的应用程序时,会出现吐司.我知道活动被破坏并为新方向重新创建,但我怎么知道实际发生了什么?如何判断我的应用程序何时被破坏而不仅仅是被轮换?与此问题类似,我想在特定活动被销毁时注销.
cor*_*992 20
从Honeycomb开始,isChangingConfigurations()可以查询该方法以检查是否Activity由于配置更改而重新创建.或者,isFinishing()可以在任何API级别查询该方法以检查Activity实际上是否正在完成,或者仅由系统暂时销毁.
据我所知,这两种方法应该总是在实践中返回相互一致的结果.它们可能分歧的唯一一点是系统杀死进程以清除内存,但此时没有回调或与应用程序的交互.
该方法的文档onDestroy()提到了该方法的使用isFinishing():
在销毁活动之前执行任何最终清理.这可能是因为活动正在完成(有人呼叫
finish()它,或者因为系统暂时销毁此活动实例以节省空间.您可以使用该isFinishing()方法区分这两种情况.
| 归档时间: |
|
| 查看次数: |
5152 次 |
| 最近记录: |