来自BroadcastReceiver的Android通知未显示

5

我希望创建一个通知(来自BroadcastReceiver - 如果有区别的话)

我不知道为什么,但它就是没有显示出来!

private void showNotification(Context context, String text) {

        NotificationCompat.Builder mBuilder =
                new NotificationCompat.Builder(context)
                        .setSmallIcon(R.drawable.notification_icon)
                        .setContentTitle(getString(R.string.app_name))
                        .setContentText(text)
                        .setAutoCancel(true);

        NotificationManager mNotificationManager =
                (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

        mNotificationManager.notify(0, mBuilder.build());

    }

我尝试过这个(以及这个),这些都与IT技术有关。

展示你整个BroadcastReceiver类和调用它的类。 - Naddy
添加Log.d(TAG, "message");行,以确保您实际到达此代码(日志消息将显示在Logcat中) - Dale Wilson
4个回答

2

从BroadcastReceiver创建通知-这会有所不同!您应该在代码中重写此字符串:

NotificationManager mNotificationManager =
                (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

1
我应该早点说:BroadcastReceiver在Service类中,所以这没有什么区别。 - Saman Miran

2

感谢所有的回答,但我意外地解决了它。 我不知道哪个点真正解决了它,但我尝试了以下步骤: 1. 清理 2. 重建 3. 关闭Android Studio 4. 重启 5. 重新启动Android Studio


1
以下是可能出现的问题:
-1:您将showNotification方法添加到了广播接收器未调用的位置。
-2:您没有注册广播接收器。
-3:替换此内容。
mNotificationManager.notify(0, mBuilder.build());

使用

mNotificationManager.notify(1, mBuilder.build());

如果第3点无法实现,请附上你的整个广播接收器代码以及调用它的位置。

0
Go to -> File -> Invalid caches -> Invalidate and restart

执行完成任务


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接