2010-10-18 4 views
5

Je vais essayer d'être aussi bref que possible ... J'ai publié une application android très simple dont le nom est "Vib-e-rator PRO". Son but est évident, il peut être utilisé comme un vibrateur masssage ou comme un stimulateur érotique ...Mon application Android "vibrateur de massage" n'arrête pas de vibrer même après le processus est tué?

Mon problème est de ne pas avoir un téléphone Android pour tester mon application en temps réel.

J'ai reçu des commentaires mitigés de personnes. Quelques utilisateurs disent que cela fonctionne bien. Mais la majorité d'entre eux se sont plaints que le téléphone cesserait de vibrer même après la fermeture de l'application. Plus tard, j'ai spéculé que lorsque jamais l'utilisateur éteint le vibrateur et quitte l'application, il fonctionnerait comme prévu. Si un utilisateur (la plupart d'entre eux) ferme directement l'application (soit par l'option de fermeture fournie dans l'application elle-même, soit en appuyant sur le bouton END du téléphone) sans éteindre le vibrateur, la vibration ne s'arrête pas.

Donc, j'ai ajouté myvib.Cancel() (myvib est le contexte pour Phone Vibrator) dans le bloc de sortie l'option de fermeture fournie dans mon application. Pour l'autre scénario, quand il est fermé en appuyant sur le bouton END dans le téléphone, je n'ai aucune idée de comment le résoudre ... Alors amis s'il vous plaît me conseiller ce qui est nécessaire de faire ... Les commentaires que j'ai reçu de nombreux utilisateurs de mon application est vraiment embarrassant ....

+5

Hé, pourrais-je emprunter votre téléphone ... euh seconde pensées – codingbadger

Répondre

4

Consultez le Activity Lifecycle. Je pense que votre meilleure solution est d'appeler myvib.cancel() de l'intérieur onPause() ou onStop(). Puis appelez myvib.vibrate() de onResume().

+0

Merci beaucoup Félix. L'activité Le cycle de vie est en effet la solution à mon problème. Encore une fois, merci, mec. – Mithraa

-2

Mithraa,

Vous pouvez essayer de changer la façon dont l'utilisateur quitte votre application. Si, au lieu du bouton de fin, vous implémentez:

onCreateOptionsMenu (menu Menu),

vous pouvez créer un menu contextuel qui affiche uniquement lorsque l'utilisateur appuie sur le bouton de menu (donc, pas de perte laid de l'écran immobilier). Le contenu du menu est décrit dans un fichier xml et analysé par:

onOptionsItemSelected (élément MenuItem).

Dans le menu de mon application, j'implémente Exit pour fermer mes divers processus avec élégance. Ce n'est pas un succès universel, mais votre contrôle Vibrator ne devrait pas avoir les problèmes auxquels je suis confronté. Une dernière mise en garde: Le menu contextuel est limité à six éléments (je pense), et à mon humble avis commence à devenir laid une fois que vous allez au-delà de quatre (Un cinquième élément de menu force une deuxième rangée de choix de menu et je suis . pas au courant de tout ce qui peut être fait à ce sujet)

Voici un lien vers un exemple décent:

http://developer.android.com/guide/topics/ui/menus.html

R.

+1

-1 La mise en œuvre d'un menu d'options n'empêche pas l'utilisateur d'appuyer sur le bouton retour (ou home) et d'être frustré parce que l'application s'est fermée mais le vibreur continue de fonctionner. – Felix

+0

Non, ce n'est pas le cas, mais cela constitue une alternative.De plus, je n'ai pas testé onKeyDown(), mais ne pourrait-il pas être utilisé pour désactiver les boutons Back et Home? – Rich

Questions connexes