Ich verwende eine Laufzeitberechtigungsanfrage, aber es gibt ein Problem damit. Es scheint, dass die Callback-Methode onRequestPermissionsResult
unendlich aufgerufen wird. Wenn der Benutzer die Anfrage ablehnt, reagiert die App nicht mehr.
Der Berechtigungsdialog erscheint jedes Mal, wenn der Benutzer auf "verweigern" klickt. Nur durch Klicken auf "nie mehr fragen" wird es nicht wieder angezeigt. * Wenn Sie auf "Zulassen" drücken, funktioniert es problemlos - ohne Probleme.
Gibt es eine Möglichkeit, die aufgerufene Methode nach einer bestimmten Zeit abzubrechen?
%Vor% Das Problem hier ist, wie Sie in den Kommentaren erwähnt haben, dass der Code, der den Anfrage-Erlaubnis-Dialog auslöst, in der Methode onResume
aufgerufen wird.
Wenn die Berechtigung zum Anfordern des Dialogfelds endet, ruft die Laufzeitumgebung onResume
für die Aktivität auf, die sie ausgelöst hat, genau wie jede Aktivität im Dialogfeld.
In Ihrem Fall würde die Ablehnung der Berechtigung einen Aufruf von onResume
erneut auslösen, was wiederum den Dialog anzeigen und einen endlosen Zyklus verursachen würde.
Durch das Verschieben dieser Berechtigungsanforderung in onCreate
oder einen anderen Flow wird Ihr Problem gelöst.
Tags und Links android permissions runtime