Immer die Rückgabe von Daten aus Nachricht für Android-handler -
Heute sende ich einige Daten, um einen handler für einen nicht-statischen Aufruf von OpenFeint Methoden. Alles ist in Ordnung bis zu dem Punkt zurückzukehren, wo ich nicht weiß, wie man die Informationen abrufen.
Methodenaufruf in der main-Klasse:
public static float getPercentageAchievement(String idAchievement) {
Message msg = new Message();
msg.what = OpenFeintXHandler.GET_PERCENTAGE_ACHIEVEMENT;
Bundle args = new Bundle();
args.putString(BUNDLE_ARG_1, idAchievement);
msg.setData(args);
ms_kOpenFeintHandler.sendMessage(msg);
return msg.getData().getFloat(BUNDLE_RETURN); //msg is empty here
}
Message-handling in der handler-Klasse:
case GET_PERCENTAGE_ACHIEVEMENT:
msg.getData().putFloat(
OpenFeintX.BUNDLE_RETURN,
otherGetPercentageAchievement(msg.getData().getString(
OpenFeintX.BUNDLE_ARG_1)));
break;
Test-Methode in der handler-Klasse:
private float otherGetPercentageAchievement(String idAchievement) {
return 200;
}
hast du dieses Problem beheben, wenn ja kann es, lass mich wie du es getan hast . Dank
Ich hörte Handler zusammen.
welche Methode hast du benutzt, dann
Ich hörte Handler zusammen.
welche Methode hast du benutzt, dann
InformationsquelleAutor MLProgrammer-CiM | 2012-05-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die eingestellten Daten in diesem format
Während der Einstellung Daten
Beim abrufen der Daten
msg.arg1
pass wird nur eine Daten-zu einer Zeit, können Sie auch die übergabe der Daten inmsg.arg2
Sie beide sind integer-Typenmsg.getData().putFloat( OpenFeintX.BUNDLE_RETURN, otherGetPercentageAchievement(msg.getData().getString( OpenFeintX.BUNDLE_ARG_1))), Was u r tun
Meine Idee ist die Speicherung der Rückkehr in die message-bundle, um es von der anderen Methode, aber es scheint, die Nachricht wird gelöscht, wenn es an den handler.
nur teilen Sie Ihren Prozess der aufrufenden Methode otherGetPercentageAchievement() und speichern Sie die Daten im msg
InformationsquelleAutor Abhinav Singh Maurya
Aber warum bestehst du darauf, den Empfang der return-Wert in der Nachricht?
Denke, dass die Nachricht gesendet wird asynchron, so dass die return-Anweisung kann ausgeführt werden, bevor der Wert ist gesetzt in der hf...
Ich tun würde:
ok, jetzt verstehe ich. Bearbeitet meine Antwort.
InformationsquelleAutor Sebastian Breit