Meine Android-Anwendung hat eine Option auf die neuere Version zu aktualisieren, die neuere Version APK Ich halte es unter einem Pfad in SD-Karte. Beim Klick auf Upgrade Option rufe ich folgende Methode auf.Installationsprogramm für Android-Pakete - Wie bekomme ich "Open" und "Done"?
public static void launchInstaller(Activity act, String apkPath)
{
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(apkPath)), "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
act.startActivityForResult(intent, 0);
}
Der Grund, warum ich FLAG_ACTIVITY_NEW_TASK sind, liegt daran, dass nach upgradation, ich will „Open“ & „Fertig“, Optionen haben, die nicht, wenn ich dieses Flag nicht verwenden gezeigt.
Wenn der obige Code das Paketinstallationsprogramm startet, hat es zwei Optionen OK & Abbrechen, wenn Benutzer Abbrechen drücken, möchte ich wissen, dass der Benutzer den Vorgang abgebrochen hat. Aber ich kann es nicht wissen, weil das onActivityResult vorzeitig heißt. Ich komme zu einem Grund, warum passiert das nach dem Lesen der folgenden Beiträge.
Android - startActivityForResult immediately triggering onActivityResult
onActivityResult() called prematurely
Sie fragen mich, um sicherzustellen, dass die Absicht ich die Aktivität zu starten, bin mit auf sie nicht haben FLAG_ACTIVITY_NEW_TASK gesetzt. Siehe hier:
http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_NEW_TASK
Insbesondere Hinweis: „Dieses Flag kann nicht verwendet werden, wenn der Anrufer ein Ergebnis aus der Tätigkeit anfordernden ins Leben gerufen.“
Wenn die Aktivität als Teil einer neuen Aufgabe wird dann Android gestartet sofort die onActivityResult() aufrufen, mit RESULT_CANCELED weil eine Tätigkeit in einer Aufgabe kann nicht Ergebnisse zurück an eine andere Aufgabe, nur auf ein und demselben Aufgabe kann dies tun.
Aber in meinem Fall kann ich FLAG_ACTIVITY_NEW_TASK nicht entfernen, weil ich ansonsten nicht die Optionen "Öffnen" und "Fertig" beim erfolgreichen Upgrade erhalten kann.
Hat jemand mit ähnlichen Problemen konfrontiert? Bitte hilf mir, denn es macht mich verrückt.
Ich habe das gleiche Problem ... hast du irgendwelche bekommen Auflösung dafür? – Himanshu