public class GCMIntentService extends GCMBaseIntentService {
public static final String SENDER_ID = "546677596418";
public GCMIntentService() {
super(SENDER_ID);
}
@Override
protected void onError(Context arg0, String arg1) {
// TODO Auto-generated method stub
Log.e("Registration", "Got an error!");
Log.e("Registration", arg0.toString() + arg1.toString());
}
@Override
protected void onMessage(final Context arg0, final Intent arg1) {
// TODO Auto-generated method stub
Log.i("Registration", "Got a message!");
Log.i("Registration", arg1.getStringExtra("message"));
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();
/* String msg = arg1.getStringExtra("message");
if(msg != null){
new AlertDialog.Builder(arg0)
.setTitle("New Notification")
.setMessage(msg)
.setNeutralButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
}).create().show();
}
*/
}
});
}
}
评论部分是我尝试显示警告Dialog.I认为上下文是问题,但我真的不知道如何解决它。 如果我使用通知会更好吗?
答案 0 :(得分:-1)
我已经使用通知解决了这个问题。我想这将不得不这样做:)
@Override
protected void onMessage(final Context arg0, final Intent arg1) {
// TODO Auto-generated method stub
Log.i("Registration", "Got a message!");
Log.i("Registration", arg1.getStringExtra("message"));
String message= arg1.getStringExtra("message");
generateNotification(getApplicationContext(), message);
private void generateNotification(Context context, String message)
{
// Creates an explicit intent for an Activity in your app
Intent resultIntent = new Intent(context, BBCAndroid.class);
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context);
mBuilder.setContentTitle("BBC Android")
.setContentText(message)
.setSmallIcon(R.drawable.notification);
PendingIntent in = PendingIntent.getActivity(getApplicationContext(), 0, resultIntent, 0);
mBuilder.setContentIntent(in);
mNotificationManager.notify(0, mBuilder.build());
}