2010-10-11 6 views
0

Salutations.Fil dans Java/Android

Comment envoyer deux paramètres dans un thread et exécuter des méthodes lorsque l'utilisateur appuie sur les boutons de l'écran. Avoir mes variables dans le thread d'interface utilisateur ne fonctionnait pas et ont été effacées lorsque le thread d'interface utilisateur redémarre aléatoirement.

Thread UI _ __ __ __ __ _ ____ Autre fil

bouton presse utilisateur -------> Run Method

Vive.

+0

Si vous avez besoin de rester au-delà de la durée de vie d'une seule instance d'activité, vous pouvez utiliser Service: http://developer.android.com/reference/android/app/Service.html –

+0

J'ai un Object et je lui mets des valeurs et l'orientation de l'écran change, je perds cet objet et il devient nul. J'ai besoin que ça n'arrive pas. Puis-je faire cela avec un service? – Mitchell

Répondre

1

Jetez un oeil à ce blog article. Il décrit comment conserver un fil de travail à travers la rotation de l'écran.

3

Je pense que vous devriez simplement définir les écouteurs pour vos boutons. Et ces auditeurs doivent à leur tour, lancer des threads avec les paremètres que vous voulez, pour effectuer d'autres tâches, tout en gardant l'interface utilisateur disponible et responsable à l'utilisateur à nouveau, pendant que ces threads sont effectués. Vous avez besoin quelque chose comme ceci:

public void onClick(View v) { 
    new Thread(new Runnable() { 
    public void run() { 
     Bitmap b = loadImageFromNetwork(); 
     mImageView.setImageBitmap(b); 
    } 
    }).start(); 
} 

Cet exemple a été pris du Android Developers Blog, où vous pouvez obtenir d'autres renseignements utiles et des conseils.

+0

Cela ne fonctionnera pas car les variables seront toujours annulées lorsque l'orientation de l'écran change. – Mitchell

+0

Vous n'avez pas mentionné le changement d'orientation de l'écran dans votre message. Ce n'est pas quelque chose que j'ai déjà traité, mais finalement, si une méthode est appelée quand l'orientation de l'écran change, vous pouvez l'utiliser pour enregistrer des variables importantes et/ou appliquer un locker à un objet utilisé par les threads. arrêter leur activité temporairement, ou leur signaler ce changement. –

+0

Pourquoi exécuter() au lieu de start()? –