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