android - 通知未在使用广播接收器的服务中触发
问题描述
我正在尝试使用 BroadcastReceiver 触发来自服务的通知,但它没有被触发,我尝试没有广播接收器,它被触发所以我不知道我的广播接收器有什么问题这是我的一段代码:
public class NotificationService extends Service {
private NotificationManagerCompat compat;
private int num;
private BroadcastReceiver broadcastReceiver;
private IntentFilter intentFilter;
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
compat = NotificationManagerCompat.from(this);
intentFilter = new IntentFilter();
intentFilter.addAction(NOTIFICATION_SERVICE);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
String hometeam = intent.getStringExtra("hometeam");
String awayteam = intent.getStringExtra("awayteam");
String date = intent.getStringExtra("date");
String time = intent.getStringExtra("time");
broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if(!time.equals(""))
{
shownotification(date,hometeam,awayteam);
}
}
};
registerReceiver(broadcastReceiver,intentFilter);
return START_STICKY;
}
在深入检查代码后,广播接收器是无法正常工作的,如果我评论广播接收器,通知就会被触发
这部分代码不起作用,我不知道为什么
broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if(!time.equals(""))
{
shownotification(date,hometeam,awayteam);
}
}
};
registerReceiver(broadcastReceiver,intentFilter);
return START_STICKY;
解决方案
推荐阅读
- jenkins - JMeter 没有正确执行使用 Jenkins 参数化的用户数
- node.js - 如何将多维javascript数组插入sqlite表?错误:SQLITE_ERROR:没有这样的表
- node.js - 数据库返回值在 Node JS 中未定义
- python - traefik 代理基本身份验证背后的 python fastapi 身份验证错误
- wordpress - 获取按分类分组的所有帖子
- kotlin - Kotlin Multiplatform Mobile:项目已经有一个名为 SDWebImage 的 CocoaPods 依赖项
- django - 请求超时/延迟问题
- html - 用上边距修复底部的 div
- scala - 无法从本地计算机上的 intellij 连接 Hive Metastore
- laravel - 结果基于 laravel 中 groupBy 的最大日期