2010-08-21 5 views
0

Dans l'exemple d'application LVL inclus, la vérification de la licence est déclenchée pendant la commande onCreate. Cela signifie que lorsque je clique sur "Acheter App" pour lancer le marché, puis immédiatement appuyer sur le bouton retour pour revenir à l'application, le dialogue est parti et un autre contrôle n'est pas effectué, me laissant avec une application parfaitement utilisable (au moins l'activité est tuée et le processus recommence).Licence Android Market: vérifiez lors de onCreate() ou onResume()?

Would le déclenchement de la vérification de la licence pendant onResume() mauvaise grâce, même si elle résoudre ce problème? Y a-t-il une meilleure solution?

Répondre

3

Après d'autres recherches (et une certaine expérience), il apparaît que l'utilisation onCreate() pour vérifier la licence est très bien. Si vous respectez la méthode de dialogue, l'ajout de finish() à la fonction qui va sur le marché fera en sorte que quelqu'un ne pourra pas simplement "revenir" dans l'application du marché et l'utiliser normalement. Ils devront relancer l'application, ce qui déclenchera à nouveau la vérification de la licence.

3

Assurez-vous de définir la boîte de dialogue à annulable (false) ou bien ils peuvent simplement appuyer sur le bouton de retour sans répondre aux choix de dialogue.

+0

Je suis actuellement remplaçant le bouton de retour pour fermer la boîte de dialogue et la finition(), mais la mise en cela semble plus robuste. Merci pour le conseil! – wirbly

0

Wirbly,

Avez-vous mis finish(); avant ou après l'intention:

finish(); 
Intent marketIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(
       "http://market.android.com/details?id=" + getPackageName())); 
startActivity(marketIntent); 

ou,

Intent marketIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(
       "http://market.android.com/details?id=" + getPackageName())); 
startActivity(marketIntent); 
finish(); 

Merci.

+0

Je mets 'finish();' après l'intention. Ça semble fonctionner correctement. – wirbly