Die Basisabsicht ist die Stammabsicht, mit der Ihre App ursprünglich gestartet wurde.
Die häufigste ist wahrscheinlich diejenige, die jede App hat, wenn sie auf die Berührung des App-Icons reagiert. Die LAUNCHER
Absicht.
Aber es kann eine benutzerdefinierte sein, zum Beispiel, wenn Sie auf benutzerdefinierte Schema/URL reagieren. Aber hier ist der Trick, und wie relinquishTaskIdentity
kann nützlich sein:
Sagen Sie Ihre App mit dem Launcher-Symbol starten. Ihre Basisabsicht ist jetzt die Standardabsicht.
Sagen Sie jetzt, Ihre App wurde vollständig gelöscht (oder Sie haben mit dem Hardware-Symbol gesichert, bis Ihre App geschlossen wird) und Sie verwenden ein benutzerdefiniertes Schema/URL, um Ihre App zu öffnen. Zu diesem Zeitpunkt ist die Basisabsicht nicht die Standardeinstellung ein. Es ist derjenige, der aus dem Schema/der URL, auf das Sie geklickt haben, generiert wird und möglicherweise auch benutzerdefinierte Daten enthält. Wenn Sie jetzt Ihre App einfach mit der Home-Taste schließen und wieder öffnen, werden Sie einfach weitermachen, wo Sie waren. Aber wenn Sie zurück, zurück, zurück ... mit der Hardware-Taste, bis Ihre App schließt, ist der Trick: Wieder öffnen es aus der letzten apps/Multitasking-Ansicht wird die Basis Absicht wieder zu öffnen, und in diesem speziellen Fall wird es immer noch sein Ihre benutzerdefinierte Schema/URL-Absicht und das kann sehr ärgerlich sein.
Warum nervig? Angenommen, das Schema/die URL, auf die der Nutzer geklickt hat, wurde für die automatische Anmeldung verwendet. Er wollte diese URL/Intention nicht wirklich verarbeiten, nur weil der Nutzer so lange gesichert hat, bis seine App geschlossen und über die neueste Apps/Multitasking-Ansicht wieder geöffnet wurde , Recht?
Verwenden Sie relinquishTaskIdentity
! Dies ist sehr abhängig von Ihrer Einrichtung und wie Ihre App wie für die Aktivitäten versus Fragmente konfiguriert ist, aber hier ist ein Beispiel:
In dem speziellen Fall, dass ich mit der automatischen Anmeldung über einen Link erwähnt, könnte Sie eine Activity
, dass ist dediziert und reagiert nur auf Schema/URL. Dieselbe Aktivität sollte sich von der als LAUNCHER
gekennzeichneten unterscheiden. und mit der Eigenschaft relinquishTaskIdentity="true"
darauf wird die Basisabsicht zu jeder nachfolgend gezeigten Aktivität werden.
Was ist der Vorteil in unserem Fall? Der Nutzer kann die App nicht mehr mit einem benutzerdefinierten Schema/URL-generierten Intent aufrufen, es sei denn, er hat auf einen Nutzer geklickt, der von Ihrer App unterstützt wird.
Können Sie Ihre Frage beschreiben? –