J'écris une application Android. J'ai une méthode principale, qui crée et exécute un nouveau Thread en utilisant une classe Runnable interne anonyme. La méthode run(), lorsqu'elle est terminée, appelle une méthode sur sa classe parente (dans le thread principal) qui appelle notifyDataSetChanged() afin que le thread principal puisse redessiner les nouvelles données. Cela provoque toutes sortes de problèmes (ViewRoot $ CalledFromWrongThreadException). Le fait est que cette méthode appelée à partir du thread de travail est sur la classe qui est créée dans le thread de l'interface utilisateur. Cela ne devrait-il pas fonctionner sur le thread de l'interface utilisateur? Ou est-ce que je manque quelque chose?Java Thread Message Passing
Voici un code de ce dont je parle:
public class Mealfire extends Activity {
@Override
public void onCreate(Bundle icicle) {
(new Thread() {
public void run() {
// Do a bunch of slow network stuff.
update();
}
}).start();
}
private void update() {
myAdapter.notifyDatasetChanged();
}
}
C'était exactement ce dont j'avais besoin. Je vous remercie! –