3

プッシュ通知クライアントを実装しようとしています。onMessage(Context arg0、Intent arg1)関数でトーストを表示したい。

これが私のコードです:

    public class GCMIntentService extends GCMBaseIntentService {
static Context c;
@SuppressWarnings("hiding")
private static final String TAG = "GCMIntentService";

public GCMIntentService() {
    super("717816998404");
    c = this.getBaseContext();
}

/**
 * Issues a notification to inform the user that server has sent a message.
 */

@Override
protected void onError(Context arg0, String arg1) {
    // TODO Auto-generated method stub

}

@Override
protected void onMessage(Context arg0, Intent arg1) {
    Log.d("GCM", "RECIEVED A MESSAGE");
    Log.d("GCM", "RECIEVED A MESSAGE");
    Log.d("GCM", "RECIEVED A MESSAGE");
    Log.d("GCM", "RECIEVED A MESSAGE");
    Log.d("GCM", "RECIEVED A MESSAGE");
    Log.d("GCM", "RECIEVED A MESSAGE");
    Log.d("GCM", "RECIEVED A MESSAGE");
    String str =arg1.getExtras().getString("PVAL");

    Log.i("PVAL",str);
    // I want to display a toast here

}

@Override
protected void onRegistered(Context arg0, String arg1) {
    // TODO Auto-generated method stub
    Log.i("TEST", arg1);
    Log.e("TEST", arg1);

}

@Override
protected void onUnregistered(Context arg0, String arg1) {
    // TODO Auto-generated method stub

}

}

受信したメッセージを表示する方法を知りたいのですが、トーストを表示してメッセージを確認しようとしています。

4

2 に答える 2

12

これを試して:

Handler h = new Handler(Looper.getMainLooper());
       h.post(new Runnable(){

            public void run() {
                // TODO Auto-generated method stub
            Toast.makeText(arg0, arg1.getStringExtra("message"), Toast.LENGTH_LONG).show();
    }         
        });
于 2012-11-12T12:51:50.597 に答える
3

onMessageメソッドにトーストの作成を追加するのはどうですか?このような:

@Override
protected void onMessage(Context arg0, Intent arg1) {
   String str = arg1.getExtras().getString("PVAL");
   Toast.makeText(arg0, str, Toast.LENGTH_LONG).show();
}

これが機能しない場合は、GCMライブラリにバンドルされているデモサンプルに従ってください。デモサンプルでは、​​メインアクティビティでBroadcastReceiverを使用します。このアクティビティでは、受信者がGCM着信メッセージにダイアログメッセージを表示します。代わりに、ダイアログ表示をトースト表示に変更できます。

于 2012-07-06T14:55:15.577 に答える