1、若是只有一个单独Activity的工程,例如Activity A 调用android.app.Activity.finish()的话,并不会关闭该工程,只是使之不处于前台,而被置于后台。
参考网上的方法,可以调用android.os.Process.killProcess(android.os.Process.myPid());这种方法确实是可以关闭该工程进程的,您可以到应用程序管理里头看看,该工程已不存在于Running中。
2、但是若是多个的Activity的工程,例如Activity A——>Activity B,而在Activity B中调用android.os.Process.killProcess(android.os.Process.myPid());
这种方法应该只是关闭当前的Activity,接着系统会重构之前的Activity A(记住,这里说的是重构,意思是:并不会调用Activity A 的onRestart(),而是调用OnCreate())
this sentence helped me a lot!!!
3、That's how Android works. The user/developer is not given any way to actually exit the application. When you call finish(), the application stack is just pushed to the background. It still exists in the memory. Android itself decides when to close the application(i.e. remove its instance from the memory) and generally this is done when your application becomes the oldest application which was not used for the longest time.
理解Android应用进程关闭与重构机制
本文深入探讨了在Android应用中使用不同方法关闭进程的机制,包括单Activity工程和多Activity工程的情况。详细解释了`finish()`方法与`android.os.Process.killProcess(android.os.Process.myPid())`的区别,以及在多Activity场景下后者的实际效果,即关闭当前Activity并重构前一个Activity的原理。
517

被折叠的 条评论
为什么被折叠?



