2012-04-02 2 views
-2

Ich habe eine Anwendung entwickelt, die einige externe Open-Source-Projekte verwendet. Für jetzt habe ich sichergestellt, dass es keinen Ort gibt, an dem die Anwendung nahe kommen würde. Ich möchte jedoch die externen Opensource-Apps nicht in Betracht ziehen. Ich möchte sicherstellen, dass im Falle, dass meine Anwendung erzwingt, ich die Anwendung von Anfang an neu starte.android- Neustart-Anwendung auf Kraft schließen

Ich suchte im Internet nach einer Lösung und das Beste, was ich finden konnte, war here. Jedoch konnte ich wirklich nicht verstehen, wie man es einführt ...

Ich habe viele Anwendungen gesehen, die den ersten Bildschirm auf Gewalt nah öffnen, so können Sie mir etwas Hilfe geben?

Antwort

0

Ich gehe davon aus, dass Sie Service meinen. Wenn Sie eine Anwendung hätten, die sich immer präsent präsentiert, würde ich Sie hassen. Aber für einen Service, starten Sie es einfach mit dem START_STICKY Flag.

Beispiel

public MyAmazingService extends Service { 
    @Override public int onStartCommand(Intent intent, int arg1, int arg2) { 
     // Doing some amazing stuff 
     return START_STICKY; 
    } 
} 
+0

Ich glaube, er will nur lebendig seine Aktivität behalten, wenn es von einer Ausnahme geschlossen wurde ... Sie haben recht, wenn es ein Fehler ist, in seinem erste Aktivität, die eine "Endlosschleife" verursachen könnte –

+0

@RafaelT Das wäre eine bessere Annahme als meine. Guter Anruf, Sir. – AedonEtLIRA

+0

nein es nicht Dienstleistungen ich bin talkin bout .... In Bezug auf unerwartete Kraft schließen möchte ich die Anwendung schließen und neu starten. – Vivekanand

2

der Link gepostet ist der Weg, es zu tun. Am besten ist es, wenn Sie ein Android Application hinzufügen, wenn nicht bereits vorhanden. Registrieren Sie ein UncaughtExceptionHandler Inside Your Applications onCreate Methode wie folgt aus:

//Inside your ApplicationClass 
public void onCreate(){ 
    Log.v("MyApplication", "onCreate triggered") 
    Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler(){ 
     public void uncaughtException(Thread thread, Throwable ex){ 
      Log.v("MyApplication", "onUncaughtException triggered. Error:") 
      ex.printStackTrace() 
      //restart your app here like this 
      Intent i = new Intent(this, TheClassYouWannaStart.class); 
      getApplicationContext().startActivity(i); 
     } 
    }); 
} 
+0

Nun, ich frage mich, y das funktioniert nicht .. – Vivekanand

+0

haben Sie verifiziert, dass Apllications.onCreate ausgeführt wird? Setzen Sie ein Log wie in meiner aktualisierten Antwort und überprüfen Sie es in DDMS –

+0

@vivek Legen Sie das tatsächlich in eine Anwendungsklasse oder eine Aktivität? Dies funktioniert nicht in einer Aktivität. – AedonEtLIRA