Java 来自服务的通知
我试图在收到C2DM消息时显示一个简单的通知。服务提供给UI,但仍在主线程上运行。我见过有人声称您可以通过服务创建和显示通知Java 来自服务的通知,java,android,Java,Android,我试图在收到C2DM消息时显示一个简单的通知。服务提供给UI,但仍在主线程上运行。我见过有人声称您可以通过服务创建和显示通知 @Override public void onMessage(Context context, Intent intent) { Log.w("Messsage","Message Received"); Bundle extras = intent.getExtras(); if (extras != null) { Stri
@Override
public void onMessage(Context context, Intent intent) {
Log.w("Messsage","Message Received");
Bundle extras = intent.getExtras();
if (extras != null) {
String payload = (String) extras.get("test");
createNotification(context,payload);
}
}
private void createNotification(Context context, String message){
NotificationManager notificationmanager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(R.drawable.default1,message,System.currentTimeMillis());
notificationmanager.notify(0,notification);
}
}
我不知道引发此异常的原因。首先,引发此异常是因为您创建的通知没有引用任何视图对象(contentView属性设置为null)。在显示通知之前,您必须先打电话 其次,您使用的构造函数是。请使用该类创建通知。如果您支持Android
第三,是的,可以从正在运行的服务创建通知。您应该阅读通知文档。如果未调用setLateStevenInfo()方法,则需要内容视图。setLateStevenInfo也不推荐使用。使用生成器设置内容元素。
06-15 15:39:13.580: E/AndroidRuntime(11603): FATAL EXCEPTION: IntentService [stp.chrome@gmail.com]
06-15 15:39:13.580: E/AndroidRuntime(11603): java.lang.IllegalArgumentException: contentView required: pkg=com.upmc id=0 notification=Notification(contentView=null vibrate=null,sound=null,defaults=0x0,flags=0x0)
06-15 15:39:13.580: E/AndroidRuntime(11603): at android.os.Parcel.readException(Parcel.java:1331)
06-15 15:39:13.580: E/AndroidRuntime(11603): at android.os.Parcel.readException(Parcel.java:1281)
06-15 15:39:13.580: E/AndroidRuntime(11603): at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag(INotificationManager.java:299)
06-15 15:39:13.580: E/AndroidRuntime(11603): at android.app.NotificationManager.notify(NotificationManager.java:124)
06-15 15:39:13.580: E/AndroidRuntime(11603): at android.app.NotificationManager.notify(NotificationManager.java:103)
06-15 15:39:13.580: E/AndroidRuntime(11603): at com.upmc.C2DMReceiver.createNotification(C2DMReceiver.java:80)
06-15 15:39:13.580: E/AndroidRuntime(11603): at com.upmc.C2DMReceiver.onMessage(C2DMReceiver.java:66)
06-15 15:39:13.580: E/AndroidRuntime(11603): at com.google.android.c2dm.C2DMBaseReceiver.onHandleIntent(C2DMBaseReceiver.java:108)
06-15 15:39:13.580: E/AndroidRuntime(11603): at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
06-15 15:39:13.580: E/AndroidRuntime(11603): at android.os.Handler.dispatchMessage(Handler.java:99)
06-15 15:39:13.580: E/AndroidRuntime(11603): at android.os.Looper.loop(Looper.java:137)
06-15 15:39:13.580: E/AndroidRuntime(11603): at android.os.HandlerThread.run(HandlerThread.java:60)