У меня есть два действия, первое запускается Launcher, второе запускается первым. Когда я убиваю процесс из первой активности, процесс убивается. Но когда я убиваю его из второго действия, система немедленно запускает новый процесс и первое действие. (PID процесса изменился.) Как я могу сделать это чисто?
Я попробовал 3 различных способа уничтожить процесс: System.exit (0), android.os.Process.killProcess (pid) и не программным способом с панели «Устройства» в Eclipse.
Ниже приведены две самые простые в мире работы, с которыми я экспериментировал. Они оба являются внешними классами в своих соответствующих файлах.
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);
}});
}
}
(Я знаю, что люди говорят, что никогда не следует предоставлять пользовательский интерфейс для выхода из программы. Но это по соображениям безопасности. У пользователя должен быть способ выйти из программы и закрыть файл, чтобы его информация не была быть утечкой.)