J'ai un problème de gestion des messages dans un thread. Ma méthode courir ressemble à ceThread perd Message après wait() et notify()
public void run() {
Looper.prepareLooper();
parserHandler = new Handler {
public void handleMessage(Message msg) {
Log.i("","id from message: "+msg.getData.getString("id"));
// handle message
this.wait();
}
}
}
J'ai plusieurs activités d'envoyer des messages à ce fil, comme celui-ci:
Message parserMessage = new Message();
Bundle data = new Bundle();
data.putString("id", realId);
data.putString("callingClass", "CategoryList");
parserMessage.setData(data);
parserMessage.what = PARSE_CATEGORIES_OR_PRODUCTS;
parserHandler = parser.getParserHandler();
synchronized (parserHandler) {
parserHandler.notify();
Log.i("","message ID: " + parserMessage.getData().getString("id"));
}
parserHandler.sendMessage(parserMessage);
Le problème est que les journaux-méthode run « id de messages: null » bien que "ID de message" ait une valeur dans l'instruction Log. Pourquoi le message "perd" ses données lors de l'envoi au thread? A-t-il quelque chose à voir avec le notifier? Merci pour votre aide