Es wurden 2 apps:Absicht Handhabung, wenn die Anwendung im Hintergrund empfängt
Intent intent = getPackageManager().getLaunchIntentForPackage("com.my.path");
startActivity(intent);
das funktioniert gut: Erste App, die zweite mit öffnen können.
Die zweite App kann die erste App mit Intents mit Aktionen erneut aufrufen. zum Beispiel:
public void call(String number)
{
Intent myIntent = new Intent(Intent.ACTION_CALL);
myIntent.setData(Uri.parse("tel:" + number);
startActivity(myIntent);
}
Und da liegt ein Problem, das ich in Kürze bekommen werde. Ich handle die empfangene Absicht in der ersten App in der onCreate
Methode. Die erste App ist einfach eine einzelne Aktivität mit vielen Fragmenten, die mit einer Fragmenttransaktion ausgetauscht werden. Wenn ich die Absicht von der zweiten App erhalte, mache ich eine Transaktion zu einem bestimmten Fragment entsprechend der Absicht.
Das Problem ist, dass, wenn die erste App nicht im Hintergrund ist (was bedeutet, dass es geschlossen ist), meine Handhabung der Absicht gut funktioniert. Wenn der Benutzer jedoch die zweite App von der ersten App aus öffnet und sich die erste noch im Hintergrund befindet, wird die erste App in den Vordergrund zurückversetzt, wenn ein Benutzer die Intent in der zweiten App aufruft Benutzer war, als er die zweite App startete, während ich erwartete, das neue Fragment zu zeigen, das auf der Anfrage des Benutzers in der Absicht basiert, die von der zweiten Anwendung gesendet wurde.
Warum passiert das und wie kann ich es beheben?
Ich kann nicht glauben, dass ich über diese Methode wusste –