2012-05-04 13 views
4

今日、OpenFeintメソッドへの静的でない呼び出しのために、いくつかのデータをハンドラに送信しています。私は情報をどのように取得するのかわからない、返品の時点までは問題ありません。メッセージからAndroidハンドラへの返信データの取得

メインクラスのメソッドの呼び出し:

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 
} 

ハンドラクラスで扱うメッセージ:ハンドラクラスで

case GET_PERCENTAGE_ACHIEVEMENT: 
     msg.getData().putFloat(
       OpenFeintX.BUNDLE_RETURN, 
       otherGetPercentageAchievement(msg.getData().getString(
         OpenFeintX.BUNDLE_ARG_1))); 
     break; 

試験方法:

private float otherGetPercentageAchievement(String idAchievement) {  
    return 200; 
} 
+0

であるあなたもmsg.arg2にデータを渡すことができ、同時に複数のデータを渡します缶は、あなたがそれをやったどのように私を聞かせするには、yes場合は、この問題を解決しました。ありがとうございました – srbyk1990

+0

ハンドラの使用をやめました。 –

+0

あなたはどのメソッドを使用しましたか? – srbyk1990

答えて

1

しかし、なぜあなたが受信して主張しませんメッセージの戻り値? は、私がどうなる

...値はハンドラにsettedされる前に、return文が実行できるようにメッセージを非同期的に送信されていることを考える:

String data=otherGetPercentageAchievement(msg.getData().getString(OpenFeintX.BUNDLE_ARG_1)); 
//use the data directly in the handler...set a variable in other class or whatever you want to do here. 
+0

説明のために編集されました。同じ名前のハンドラクラスの他のメソッドでした。 –

+0

今、わかりました。私の答えを編集しました。 –

5

あなたはこの形式

にデータを設定することができます

データ

を取得中にデータ

Message msg = new Message(); 
msg.obj = data which you want to set // for object data 
Msg.arg1 = data which you want to set // for integer data 

を設定中

String data = (String) msg.obj; // If object is of String 
int integerData = msg.arg1; 

msg.arg1どちらも整数型の

+0

コードを読んだことがありますか?私はすでにそれをやっていて働いていません。 Arg1とarg2は、intパラメータでのみ有効です。 –

+2

msg.getData()。putFloat( OpenFeintX.BUNDLE_RETURN、 otherGetPercentageAchievement(msg.getData()。getString( OpenFeintX.BUNDLE_ARG_1))); 何をしているのか –

+0

私の考えは、メッセージバンドルに戻り値を格納して他のメソッドから取得することですが、メッセージがハンドラに送信されるとクリアされるように見えます。 –

関連する問題