如何检查android中是否正在关闭应用程序

时间:2013-07-02 07:21:59

标签: android

我试图在退出应用程序时保留日志。我使用过这段代码:

public void onDestroy() {
    super.onDestroy();    
    Log.d("D", "Destroyed");     
}

但这仅在按下Back按钮时有效。当我按下Home按钮,应用程序Pauses,如果我从任务管理器关闭此应用程序,则不会调用onDestroy函数。如何处理?

有什么想法吗?

4 个答案:

答案 0 :(得分:1)

您无法处理从任务管理器关闭应用程序。在这种情况下,您正在查杀该应用,并且未调用onDestroy。你应该在onPause

中清理所有内容

答案 1 :(得分:0)

来自Android Developer Guide

  

在某些情况下,您的活动会因此被销毁   正常的应用程序行为,例如当用户按下后退按钮或时   你的活动通过调用finish()表示自己的破坏。该   如果系统当前已停止,系统也可能会破坏您的活动   没有在很长一段时间内使用或前台活动需要   更多资源,因此系统必须关闭后台进程   恢复记忆。

当您通过按主页按钮在应用程序之间切换时,Android会暂停活动并在您返回活动时恢复活动。

在大多数情况下,操作系统决定何时退出应用程序,因此在销毁活动时记录是没有意义的。我建议覆盖onPause()onStop()方法

答案 2 :(得分:0)

您可以使用onPause()方法完成您的工作。
在你的情况下:
如果在任务管理器的进程列表中使用End Process,那么在应用程序中没有调用任何内容,应用程序就会被终止 如果在“应用程序”列表中使用End Task,则会将WM_CLOSE发送到窗口,从而允许应用程序进行清理。

答案 3 :(得分:0)

当活动完成其生命周期时,将调用

onDestroy()。它在活动的生命周期中也被调用一次。

操作系统决定什么时候“消失”。 onDestroy是让你的应用程序最终有机会在活动被破坏之前清理的。

相关问题