在GCMBaseIntentService中显示一个toast

时间:2012-07-06 14:38:16

标签: android

我正在尝试实施推送通知客户端。我想在onMessage(Context arg0,Intent arg1)函数中显示一个toast。

这是我的代码:

    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

}

}

我想知道如何显示收到的消息我试图显示吐司以检查消息。

2 个答案:

答案 0 :(得分: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();
    }         
        });

答案 1 :(得分:3)

如何在onMessage方法中添加toast创建?像这样:

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

如果这不起作用,请按照GCM库中捆绑的Demo示例进行操作。演示示例在主活动中使用BroadcastReceiver,接收器在GCM传入消息上显示对话消息。您可以改为将对话框显示更改为吐司显示。