我正在尝试在收到C2DM消息时显示一个简单的通知。服务提供给UI,但仍在主线程上运行。我见过有人声称您可以通过服务创建和显示通知。
@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);
}
}
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)
我不知道为什么会抛出该异常。
首先,引发异常是因为创建的通知没有引用该对象的视图对象(contentView属性设置为null)。您必须在显示通知之前调用setLatestEventInfo。
其次,不赞成使用您使用的构造函数。请使用Notification.Builder类创建通知。如果您支持Android
<API级别11,则可以使用支持库中的类NotificationCompat.Builder。
第三,是的,可以从正在运行的服务创建通知。
问题内容: 我想像本例一样启用蓝牙。 但是,我的课程不是Activity,而是Service,因此我不能调用startActivityForResult。我怎么解决这个问题?。我知道还回答了其他问题,例如 使用非活动中的startActivityForResult 但这不能解决我的问题,因为我的应用程序由服务组成,而没有别的什么。 问题答案: 不幸的是你不能那样做。 我发现(破解)的唯一解决方案是
所以我正在使用asmack库来侦听传入的xmpp数据包。我已经实现了服务。它启动,绑定,运行一个方法,然后解除绑定。该服务创建PacketListener以获取传入消息,并在新消息传入时显示通知。当应用程序处于活动状态时,这一切都起作用,但当它完全关闭(在窗口列表中滑动)时就不起作用了,它只是在运行服务,PacketListener不启动。但只要重新打开应用程序,它就会立即启动,关闭所有通知。我正
下面尝试过,但是直到并且除非我使Acyah geShipmentIn绑定节点为空(删除释放ID="9.2"xmlns="http://schema.infor.com/InforOAGIS/2"xmlns: xs="http://www.w3.org/2001/XMLSchema")选择查询不获取值。
我正在尝试创建以下进程: 为了连接两端(IoT Hub和Notification Hub),我尝试按照以下教程操作:https://www.developer.com/ws/android/senging-notifications-to-mobile-apps-fromon-azure-function-apps.html 此外,我还添加了从IoT集线器到服务总线中适当队列的路由。 现在,每当I
我们最近将一些数据移植到MongoDB,现在正在考虑运行日常备份,最好是从cron作业,并将其中一个备份恢复到辅助mongo数据库。 我们的系统设置如下: 服务器1:开发mongo数据库 服务器2:两个mongo数据库,一个用于暂存数据,一个用于生产 服务器3:是我们运行所有cron作业/批处理脚本的地方 (我尝试了将用户名和密码连接到主机,但没有将用户名和密码连接到主机) 我收到以下信息: Mo
在这里你可以找到以下关于自动模块的内容: 模块系统还扫描元INF/服务,并使自动模块提供其中命名的服务。假定允许自动模块使用所有服务。 但是,我有以下情况。我想在JPMS中与slf4j一起使用log4j2。为此,必须向提供JPMS服务。log4j的开发人员将作为自动模块,通过Meta-INF/Services提供服务。然而,它并不起作用,在它给出如下: 我决定将module-info添加到中,并通