JunctionActorを定義する外部パッケージを使用しています。JunctionActorは、sendMessageというメソッドを介してリモートサーバーにJSONメッセージを送信し、onMessageReceivedを呼び出すリスナーを介してメッセージを受信できるという考え方です。私の実装では、デバイスは送信するすべてのメッセージを受信するため、onMessageReceivedを呼び出します。それでも、私のコードでは、ChatClientオブジェクトをアクティビティクラスに含めました。このオブジェクトは、show_messageメソッドを呼び出す必要があります。show_messageはトーストをトリガーします。onJoinからshow_messageを呼び出すと、まったく問題はありませんが、onMessageReceivedから呼び出すと、何も表示されません。一方、デバッガーは、アプリが実際にメッセージを受信し、onMessageReceivedがトリガーされることを通知します。その間、onJoinメソッドでのshow_messageの呼び出しは実際に機能します。そして、私はできます」両方の違いがわかります。解決策はありますか?
どうもありがとう
public class HelloWorldJunctionActivity extends Activity {
onCreate(...){...} [...]
private class ChatClient extends JunctionActor {
public ChatClient() {
super("client");
}
public void onActivityJoin() {
show_message("Connected");
}
@Override
public void onMessageReceived(MessageHeader header, JSONObject msg) {
try {
show_message(msg.getString("text"));
} catch (JSONException e) {
// TODO Auto-generated catch block
show_message(e.getMessage());
}
}
}
void show_message(String message) {
Toast
.makeText(HelloWorldJunctionActivity.this, message, Toast.LENGTH_SHORT)
.show();
}
}