我有兩項活動,第一項活動由啓動器啓動,第二項活動由第一項啓動。當我在第一個靈敏度內殺死進程時,進程被終止。但是當我從第二項活動中殺死它時,系統會立即啓動一個新流程和第一項活動。 (該進程的PID已更改。)我該如何幹淨地做到這一點?我嘗試了3種不同的方法來終止進程:System.exit(0),android.os.Process.killProcess(pid),並且從Eclipse的Devices面板以非編程方式。如何殺死一個進程?
以下是我實驗過的兩個世界上最簡單的活動。它們都是各自文件中的外部類。
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退出程序,但是這是出於安全原因,用戶必須有辦法退出程序並關閉文件,以便贏得了他的信息「T被泄露。)
考慮用startActivityForResult開始第二個活動,然後使用setResult和finish()將第二個活動的消息傳回第一個活動。然後在onActivityResult中捕獲消息。打開信息並打電話完成?如果有必要,在第一次活動。 – JAL 2011-05-07 20:13:48