Android: ActivityCompat.requestPermissions exige de l'activité et non de contexte :/
Je vais appeler ActivityCompat.requestPermissions afin d'obtenir les autorisations sous android M, cependant, cela nécessite une activité dans l'argument. Ce serait bien, sauf que j'ai envie de l'appeler à partir d'un singleton, et le singleton peut être utilisé par toute activité dans l'application.
ActivityCompat.requestPermissions(context, PERMISSIONS_LOCATION, REQUEST_LOCATION);
Je veux éviter la tenue d'une référence à toute activité au sein du singleton comme c'est une recette infaillible pour une fuite de mémoire, et aussi, je préfère que le singleton pas la tenue de l'activité, parce qu'il exige inutile de code dans toutes les activités de cet appel (chaque un seul d'entre eux va avoir à inclure un argument supplémentaire dans la getInstance() pour que le singleton à la tenue de l'activité - le singleton a besoin pour obtenir l'activité de quelque part).
Maintenant, je peux techniquement obtenir une activité et puis le mettre à null tout de suite après je demande la permission, mais qui me laisse encore avec des tonnes de inutile activité arguments dans chaque activité où je fais un appel à la singleton. Est-il une solution plus élégante à ce problème que je suis tout simplement pas voir?
Je suis en utilisant getcontexteapplication() que mon contexte, afin d'éviter la transmission des contextes d'activités. Je suppose que je ne peux pas l'appliquer à une activité?
Si elle implique une activité comme un objet, à passer d'une activité à l'autre, sa valeur doit être mis à jour. En faisant cela, je suppose, Il ne résout pas un Singleton.
Voir cet exemple pour l'Exécution de Requête, [lien] github.com/googlesamples/android-RuntimePermissions/blob/master/...
Droit, mais l'activité cible est un must pour passer juste à décider où pour afficher la boîte de dialogue demandant les autorisations.
OriginalL'auteur Jon | 2015-08-19
Vous devez vous connecter pour publier un commentaire.
La documentation sur requestPermissions dit que l'activité paramètre est la cible de l'activité où vous voulez afficher le pop-up si vous n'avez pas compris l'autorisation dans votre manifeste, et à cette fin, cette méthode vous oblige à passer d'une activité et non sur le contexte, parce que lors de la finition de la demande d'autorisations de tâche, il sera ensuite de retour suite à la convocation de l'activité(c'est l'activité passée comme paramètre de la méthode). Si vous êtes si catégorique au sujet de la mise en œuvre par le biais de votre singleton je vous suggère de créer une fonction qui accepte de l'activité dans le paramètre et les rappels trop car vous en AUREZ besoin pour gérer les rappels si les autorisations ont été données ou non
OriginalL'auteur Bhargav