0

当退出应用程序时,我正在尝试维护日志。我用过这段代码:

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

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

任何想法 ?

4

4 回答 4

1

您无法处理从任务管理器关闭应用程序。在这种情况下,您正在杀死应用程序并且onDestroy没有被调用。你应该把所有东西都清理干净onPause

于 2013-07-02T07:28:45.883 回答
0

来自Android 开发人员指南

在某些情况下,您的 Activity 由于正常的应用程序行为而被破坏,例如当用户按下后退按钮或您的 Activity 通过调用 finish() 发出自己的破坏信号时。如果您的活动当前已停止并且长时间未使用,或者前台活动需要更多资源,系统也可能会破坏您的活动,因此系统必须关闭后台进程以恢复内存。

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

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

于 2013-07-02T07:26:39.063 回答
0

你可以用方法做你的事情onPause()
在您的情况下:
如果End Process从任务管理器的进程列表中使用,则应用程序中不会调用任何内容,应用程序将被终止。
如果End Task从应用程序列表中使用,则将WM_CLOSE其发送到窗口,这反过来又允许应用程序进行清理。

于 2013-07-02T07:28:20.930 回答
0

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

操作系统决定事情何时“消失”。这onDestroy是为了让您的应用程序有最后的机会在活动被破坏之前清理东西。

于 2013-07-02T07:32:43.123 回答