【发布时间】:2012-06-14 14:31:18
【问题描述】:
我读过一些帖子说使用这种方法“不好”,不应该使用,它不是“关闭”应用程序的正确方法,它不是 Android 的工作方式......
我理解并接受 Android 操作系统比我更清楚何时终止进程的正确时间这一事实,但我还没有听到关于为什么使用 killProcess() 方法是错误的很好的解释。毕竟 - 它是 Android API 的一部分。
我所知道的是,在其他线程正在执行潜在的重要工作(文件操作、写入数据库、HTTP 请求、运行服务..)时调用此方法会导致线程被终止,这显然不好。另外,我知道“重新打开”应用程序会更快,因为系统从上次使用应用程序时仍“保持”在内存状态,而killProcess() 阻止了这种情况,我可以从中受益。
除了这个原因,假设我没有这样的操作,并且我不在乎我的应用程序是否每次打开时都会从头开始,还有其他原因我不应该使用killProcess()方法?
我知道关闭Activity 的finish() 方法,所以请不要在你的回答中包含它。
finish() 仅适用于Activity,并非适用于所有应用程序,我想我确切知道为什么以及何时使用它。
还有一件事 - 我正在使用 Unity3D 框架开发游戏并将项目导出到 Android。当我对生成的apk进行反编译时,我很惊讶地发现,从unity创建的java源代码——实现Unity的——Application.quit()方法,带有Process.killProcess(Process.myPid())。
Application.quit() 应该是根据 Unity3D 文档关闭游戏的正确方法(真的吗?也许我错了,错过了什么),那么 Unity 的框架开发人员为什么要在原生 Android 中实现这一点?
【问题讨论】:
-
你所说的“不好”是什么意思——关于线程操作?
标签: android unity3d kill-process