finish() 和 killProcess by myPid() 的区别

6
我经常听到关闭任何活动使用finish或使用android.os.Process.killProcess(android.os.Process.myPid())。
第一点:我认为它们之间的确切区别是什么?
第二点:它们中最可取的是什么?
第三点:有时我们会在将数据通过意图传递到第二个活动时丢失数据,因此使用finish()或killprocess,数据会丢失吗?
2个回答

7

第一段 <: 我认为它们的确有什么区别?

android.os.Process.killProcess(android.os.Process.myPid()); 会杀死所有进程,包括启动的堆栈中的所有活动。

finish 会销毁您调用 finish 的 Activity。

第二段 <: 它们之间最好的是什么?

这取决于你需要什么,但通常不使用 killProcess

第三段 <: 有些时候我们通过intent将数据从一个Activity传递到另一个Activity时会丢失数据,那么使用finish()或killprocess,数据会丢失吗?

当然是 killProcess!killProcess 不会返回到以前的 Activity。它会杀死在此进程中启动的所有活动。


0

首先:android.os.process.killprocess(pid)用于立即杀死进程(类似于Linux),但使用它是一个不好的主意。最好使用finish()函数,但这意味着活动被销毁,但内存可能不会被释放,因为Android将保留它,以防需要重新启动。

其次:使用finish()而不是killProcess

第三:如果您使用killProcess,您将立即丢失数据。最好关注活动生命周期,让所有事情顺利运行。您可以在使用finish()之前保存数据,或者您可以在onDestroy()中处理它,因为该函数被调用以销毁活动 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接