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