J'ai travaillé sur une application Android pour me familiariser avec la plate-forme. Plus précisément, l'application que j'essaie de mettre en œuvre permet à l'utilisateur de sélectionner un fichier son (MP3 ou WAV) à lire à une date et une heure spécifiques affichant un dialogue avec une barre de progression et un bouton OK/Annuler permettant à l'utilisateur d'arrêter jouer du fichier son. Je veux qu'il se comporte quelque chose comme les applications de compte à rebours que j'ai vu ou même l'application intégrée de réveil. Comme j'applique cette application simple (j'ai pensé!), J'essaye de mieux comprendre la plate-forme et rendre l'application conforme à la manière d'Android.Comprendre le bon "flot" d'alarme Android
En écrivant l'application, j'en apprends plus sur la façon dont les choses sont censées fonctionner sur la plateforme Android. Et voici où je suis un peu confus. Pendant mes tentatives pour déclencher l'alarme et l'afficher, j'apprends que les applications Android correctement formées ne sont pas supposées afficher des boîtes de dialogue suite à l'appel d'un service d'arrière-plan ou d'un récepteur de diffusion via le service d'alarme Android. Au lieu de cela, je pense que l'application est censée utiliser une notification sur la barre d'état pour alerter l'utilisateur. L'utilisateur a ensuite la possibilité de regarder la notification pour voir ce que l'application essaie de leur dire.
J'ai réussi à faire apparaître le dialogue que je voulais faire apparaître en lançant une nouvelle activité à partir d'un service lancé par le service d'alarme d'Android. Cependant, il semble que j'ai brisé une règle Android en le faisant. Je le savais d'abord parce que j'ai vu un message dans la fenêtre DDMS LogCat qui demandait si j'étais sûr de vouloir démarrer une nouvelle activité à partir d'un Service. Deuxièmement, j'ai lu à plusieurs endroits que ce n'était pas bien de le faire. Une déclaration qui vient à l'esprit vient d'un développeur de Google qui a dit qu'il allait certainement désinstaller une application qui a fait quelque chose comme ça. L'application est plutôt, si je comprends bien, censée utiliser la barre d'état et la notification pour attirer l'attention de l'utilisateur et lui permettre de voir ce que l'application veut à loisir. Cela semble contre-intuitif à ce que mon application essaye de faire. Encore une fois, j'essaie de le faire se comporter, essentiellement, comme les applications de compte à rebours que j'ai vu ou l'application intégrée de réveil qui vient sur les téléphones Android. Si mon application ne se comporte pas correctement, l'application de réveil se comporte-t-elle? Évidemment, je dirais que l'application de réveil fait exactement ce que je m'attendais. Et un utilisateur de mon application, je pense, s'attendrait à ce que le fichier son joue avec une boîte de dialogue montrant que la lecture du fichier son peut être arrêtée sans avoir à passer par la barre d'état. Est-ce que je comprends correctement la plate-forme Android? Des opinions sur la façon dont une application comme celle-ci pourrait être implémentée sans être méchant en évoquant le dialogue que j'ai mentionné? Je voudrais que l'application soit considérée comme une application Android bien formée, mais j'ai du mal à voir comment mon application est si différente des autres que j'ai vues ou même de l'application de réveil intégrée.
Merci! Jeff