Android – détection du lancement de l'application à partir de la maison ou de l'historique

Quel est le meilleur moyen de détecter lorsqu'une «application» Android a été lancée à partir de l'écran d'accueil / historique?

Fondamentalement, ce que j'essaie d'atteindre, c'est obliger l'utilisateur à se connecter à certains écrans chaque fois qu'ils reviennent à l'application (c'est-à-dire qu'ils ont un accès complet à toutes les activités une fois connecté, mais essentiellement je veux qu'ils se ré-authentifient quand ils Revenez à l'application via le lancement sur l'écran d'accueil).

Je sais que des questions similaires ont été posées avant (c.-à-d. Comment lancer des lancements d'une application), mais aucun que j'ai vu n'a encore réussi à résoudre mon problème. Toutes les idées sont les bienvenues …

4 Solutions collect form web for “Android – détection du lancement de l'application à partir de la maison ou de l'historique”

Quel est le meilleur moyen de détecter lorsqu'une «application» Android a été lancée à partir de l'écran d'accueil / historique?

Vous ne pouvez pas, AFAIK.

Fondamentalement, ce que j'essaie d'atteindre, c'est obliger l'utilisateur à se connecter à certains écrans chaque fois qu'ils reviennent à l'application (c'est-à-dire qu'ils ont un accès complet à toutes les activités une fois connecté, mais essentiellement je veux qu'ils se ré-authentifient quand ils Revenez à l'application via le lancement sur l'écran d'accueil).

Utilisez un système de connexion convivial et convivial. Par exemple, si vous pensez que leurs identifiants de connexion sont obsolètes en fonction de l'heure, forcez-les à vous connecter à nouveau. Vous pouvez le faire en vérifiant les informations d'identification dans onCreate() , et si elles sont startActivity() , appelez startActivity() pour lancer votre activité de connexion (ou afficher votre boîte de dialogue de connexion, ou tout ce qui vous permet de les enregistrer).

Bien sûr, une approche encore meilleure est de sauter la connexion entièrement. Sauf s'il s'agit d'un «mot de passe sécurisé», d'une application bancaire, ou d'une autre chose qui nécessite une sécurité supérieure à la moyenne, vous n'avez pas besoin de vous connecter, et vos utilisateurs seront irrités s'ils estiment que votre demande de connexion n'est pas nécessaire. La plupart des applications mobiles ne nécessitent pas d'authentification.

Forcer un login en fonction de la façon dont ils ont atteint l'activité est hostile à l'utilisateur. Vous dites aux utilisateurs qui souhaitent utiliser leurs téléphones pour des choses autres que votre application qu'ils sont des citoyens de deuxième classe.

Qu'en est-il de

  if((getIntent().getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY )!=0) { Log.d(TAG, "Called from history"); } 

? Cela utilise un indicateur d'intention simple .

Créez simplement une activité de souche qui n'a pas de vue de contenu et lance d'autres activités lors du démarrage de l'application

P.ex. mettez le suivant sur onCreate:

 Class<?> myclass; if(isTimeForActivity1){ myclass = Activity1.class; }else if(isTimeForActivity2){ myclass = Activity2.class; } startActivity(new Intent(this, myclass)); finish(); 

Essayez d'examiner l'application "OI Safe" qui a une solution bien conçue (je ne sais pas si le code est bien conçu, mais vous allez regarder: p)

coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.