Принимая во внимание ответ Нила Тротта в первом сообщении выше, я нашел идеальное решение для таких сценариев.
System.exit (0) or android.os.Process.killProcess (android.os.Process.myPid()) оба работают, если у вас есть только одна активность в стопке приложения, иначе Android просто перезагрузит ваше приложение нажатие (top-1) Activity на передний план, возможно, потому, что Android предполагает, что пользователь взаимодействует с приложением, и он внезапно «разбился», поэтому он должен продолжать взаимодействовать с ним.
Итак, мое решение состоит в том, чтобы сначала отправить приложение в фоновом режиме с помощью Activity.moveTaskToBack(), а затем вызвать один из двух методов выше.
private void terminateApp() {
// TODO: Don't forget to clean up your background threads, services, etc.
// send the app into background, otherwise Android will relaunch the app process if you have multiple Activities in your backstack.
moveTaskToBack(true);
// kill everything running in this process.
System.exit(-1); // or you can use android.os.Process.killProcess(android.os.Process.myPid());
}
Я не вижу никаких проблем с этим подходом, за исключением того, что идет вразрез с принципами Android дизайна ... хотя это прекрасно работает, когда вы действительно, действительно необходимо.
Надеюсь, это поможет кому-то!
Возможно, вам было бы лучше добавить комментарий к одному из вышеуказанных вопросов, чем задать свой собственный вопрос и сразу же ответить на него. – spartygw
Мне потребовалось довольно много времени, чтобы найти это решение, даже пройдя все остальные вопросы, а затем сделав свой собственный удар и пробную версию. Ответ или комментирование других вопросов по-прежнему будет поддерживать мой подход где-то там, на странице, где большинство пользователей не увидит этого и, следовательно, не сможет его применить. Поэтому я создал новый вопрос, чтобы другие могли быстро найти решение. Поэтому я не думаю, что он заслуживает минусового голосования, но вполне нормально, что у вас есть собственное мнение. – keylime
И btw, я пробовал комментировать другие вопросы, но, как новый пользователь, система не позволит мне комментировать. И предпочтительно публиковать свой вопрос с ответом на http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions, на который я смотрел, прежде чем публиковать свой вопрос и отвечая на него. – keylime