0

absolvierte ich eine App aus dem anderen App programmatisch wie unten nenne:Wie bis der Absicht der Ausführung warten ist in android

Intent intent = new Intent(Intent.ACTION_MAIN); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
intent.setComponent(new ComponentName(packageString,classApp)); 
mActivity.startActivity(intent, 2); 

Ich wollte warten, bis Intent App Ausführung beendet und geschlossen wird.

Ich habe versucht, die startActivityForResult (Absicht, 2). Aber dieses dosnt scheint zu funktionieren, da es das onActivityResult in der tatsächlichen Aktivitätsklasse nicht aufruft. Ich rufe den Intent in der Nicht-Aktivitätsklasse auf.

Antwort

0
Intent intent = new Intent(Intent.ACTION_MAIN); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
intent.setComponent(new ComponentName(packageString,classApp)); 
setResult(2,intent); 

onActivityResult check this. 

if(requestCode == 2){ 

Log.v(TAG ,"Result is Received"); 
} 


please check log in logcat. 
+0

Also wollte ich, dass ich die setResult aufrufen nach dem Aufruf von startActivityForResult (intent, 2) das? –

+0

Dies funktioniert nicht. –

0

Ich wollte bis Intent App Ausführung abgeschlossen ist, warten und geschlossen.

Das ist nicht möglich. Sie haben keine Möglichkeit zu wissen, wann "die Ausführung der App abgeschlossen und abgeschlossen ist", insbesondere, da Sie diese Aktivität in einer neuen Aufgabe starten. Zum Beispiel:

  • Sie starten die andere Aktivität.
  • Der Benutzer drückt RECENTS und kehrt über den Übersichtsbildschirm zu Ihrer App zurück.
  • Was nun? Der Benutzer muss nichts tun, um diese andere App "abzuschließen und zu schließen".

Sie sind willkommen, Lifecycle-Methoden zu verwenden, wie onStart(), um festzustellen, dass Sie die Kontrolle zurück bekommen, aber das bedeutet nicht, dass „App-Ausführung abgeschlossen und geschlossen wird“.

+0

Anstatt zu warten, wie bekomme ich die Antwort oder das Ergebnis von der neuen App zurück, so dass ich andere Operationen meiner aktuellen App nach der Antwort arbeiten lassen kann. –

+0

@AshishPatha: Sie können die Antwort oder das Ergebnis nicht von einer beliebigen Aktivität abrufen. Sie können die Antwort oder das Ergebnis nicht von einer Aktivität abrufen, die in einer neuen Aufgabe gestartet wurde. * Wenn * die Aktivität, die Sie starten möchten, für die Verwendung mit 'startActivityForResult()' entworfen wurde, verwenden Sie diese (ohne 'FLAG_ACTIVITY_NEW_TASK'), und Ihr Ergebnis wird in Ihre 'onActivityResult()' Methode kommen. Da Sie jedoch versuchen, die Aktivität von etwas anderem als einer Aktivität zu starten, ist 'startActivityForResult()' keine Option. In diesem Fall ist das, was Sie wollen, nicht möglich. – CommonsWare

+0

Gibt es also keine andere Möglichkeit, eine Antwort zu erhalten, wenn Sie FLAG_ACTIVITY_NEW_TASK verwenden? –