2013-05-21 2 views
0

У меня есть приложение со многими видами деятельности, A (основное), B, C, D, E и служба, работающая в фоновом режиме ... Мое приложение - это клиент, подключенный к серверу. В определенный момент сервер сообщает клиенту выйти из системы, служба получает сообщение, и теперь я должен выйти и закрыть приложение. Я попытался запустить Activity A из службы и переопределить в A обратный вызов onNewIntent, но он никогда не запускается. Проблема в том, что мне бы хотелось убить приложение, в котором я участвую. Я думал, что начать новую деятельность (с CLEAR_TOP) и переопределить ее onNeIntent было бы, но метод никогда не вызывается. Должен ли я использовать трансляцию и приемник в каждом мероприятии? Каков правильный шаблон для обработки этой ситуации?Выход из приложения для Android

Service, когда он получает сообщение:

Intent intent = new Intent(this, HomePage.class); 
Bundle b = new Bundle(); 
b.putBoolean("VIMSANDROID_SLOGGAUTENTE", true); 
intent.putExtras(b); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 

А (основной):

@Override 
public void onNewIntent(Intent i) 
{ 
    finish(); 
startActivity(i); 
} 

Спасибо !!!

+0

Вы не должны действительно убивать приложение - скорее, перенаправить любое дальнейшее использование на операцию входа, которую пользователь может либо действовать, либо оставить в пользу чего-то еще на телефоне. –

ответ

0

вызов finish() только убивает конкретную деятельность, в которой он вызывается. если вы хотите убить свое приложение, попробуйте это.

System.runFinalizersOnExit (true); // depricated Теперь

ИЛИ

android.os.Process.killProcess (android.os.Process.myPid());

+0

Ну, мой процесс имеет сервис и стек действий, процесс убийства не позволяет мне правильно выйти ... –

+0

, тогда я не думаю, что есть какой-либо другой способ, потому что из-за того, что когда-либо означает, что ваше приложение уходит, ваш стек и служба будут уничтожены. если вы хотите убить их должным образом перед выходом приложения, то сделайте это с помощью кода приложения, а затем уничтожьте процессы. –

+0

Мне нужно пройти через активность A, вот почему я пытаюсь использовать onNewIntent() –

Смежные вопросы