gpt4 book ai didi

android - 如何杀死一个进程?

转载 作者:太空宇宙 更新时间:2023-11-03 12:12:22 25 4
gpt4 key购买 nike

我有两个 Activity ,第一个 Activity 由启动器启动,第二个 Activity 由第一个启动。当我从第一个 Activity 中终止进程时,该进程被终止。但是当我从第二个 Activity 中杀死它时,系统会立即启动一个新进程和第一个 Activity 。 (进程的 PID 改变了。)我怎样才能干净地做到这一点?

我尝试了 3 种不同的方法来终止进程:System.exit(0)、android.os.Process.killProcess(pid),以及从 Eclipse 的设备面板以非编程方式终止进程。

以下是我体验过的两个世界上最简单的 Activity 。它们都是各自文件中的外部类。

public class FirstActivity extends Activity  {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
((Button)findViewById(R.id.button)).setOnClickListener(
new OnClickListener() {
public void onClick(View v) {
startActivity(new Intent(FirstActivity.this,
SecondActivity.class));
}});
}
}

public class SecondActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_2);
((Button)findViewById(R.id.button)).setOnClickListener(
new OnClickListener() {
public void onClick(View v) {
// Method 1
int pid = android.os.Process.myPid();
android.os.Process.killProcess(pid);
// Method 2
System.exit(0);
}});
}
}

(我知道人们说永远不应该提供一个 UI 来退出程序。但这是出于安全原因。用户必须有办法退出程序并关闭文件,这样他的信息就不会丢失被泄露。)

最佳答案

你可以试试this.finish()

其他选项会在不通知 android 系统的情况下终止进程,这会假定用户想要执行的操作已崩溃并重新启动。

但是您关于关闭 Activity 以防止数据泄漏的假设是错误的。如果您想提供注销按钮,请执行此操作并让它取消用于获取访问权限的任何访问 token / key 。

还要考虑如果其他一些 Activity 在用户退出您的 Activity 的情况下进入前台会发生什么情况 - 例如,如果他们接到电话怎么办?

关于android - 如何杀死一个进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5923074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com