2012-06-05 35 views
7

Próbuję ponownie uruchomić aplikację, gdy wystąpi awaria w systemie Android, używając Thread.UncaughtExceptionHandler. Czy mogę ponownie uruchomić aplikację z bieżącym stosem działań jako nowym procesem? Jeśli tak, jak mogę to zrobić?Android Restartowanie aplikacji

Odpowiedz

1

Jedną z metod jest nadpisanie metody onPause w działaniu w celu zabicia aplikacji. Tak:

public class MyActivity extends Activity { 
    @Override 
    public void onPause() { 
     finish(); 
    } 
+0

Powyższy kod kończy odpowiedni rytuał aktywności ?? Użyłem następującego kodu, aby zabić proces android.os.Process.killProcess (android.os.Process.myPid()); – PgmFreek

+0

Ach, więc próbujesz zabić proces i ponownie uruchomić aplikację zaraz po tym, jak proces zostanie zabity? –

+0

tak ... Po zabiciu procesu użyłem menedżera alarmów, aby uruchomić aplikację ... Ale moje pytanie brzmi: czy mogę uruchomić aplikację z poprzednim stosem aktywności procesu? – PgmFreek

0

O ile mi wiadomo, Po zabić proces, garbage collector będzie działać, a wszystkie obiekty, które należy do aplikacji, która zużywa pamięć dostanie uwolniony, czyli wszystkie obiekty będą miały wartość pusta. Zatem uruchomienie aplikacji z poprzednimi śladami stosu działań procesu nie jest możliwe.

+0

Czy mogę uzyskać stos aktywności bieżącego procesu przed jego zabiciem? – PgmFreek

+1

Proszę zobaczyć ten link, może to pomóc: http://stackoverflow.com/questions/10043246/retrieving-the-navigation-history-for--current-running- application – Shrikant