gpt4 book ai didi

java - 服务中的广播接收器未接收 Intent

转载 作者:太空宇宙 更新时间:2023-11-04 12:30:27 25 4
gpt4 key购买 nike

我知道有很多与此主题相关的问题,但似乎没有什么对我有用。

我有一项服务接收来自多个 Activity 的广播,并且我对收到的每个广播使用不同的操作来区分它们。

这是我的代码

MyService.java//这是服务类

private BroadcastReceiver SleepTimeReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG,"SleepTimeReceiver onReceive is called");
if (intent.getAction().equals("sleepTimeFinished")) {
Log.d(TAG,"intents are matching");
}
}
};

@Override
public void onCreate() {
Log.d(TAG,"onCreate is called");
.
.
registerReceiver(SleepTimeReceiver,new IntentFilter("sleepTimeFinished"));
}

@Override
public void onDestroy() {
Log.d(TAG, "on destroy is called");
unregisterReceiver(SleepTimeReceiver);
}

MyActivity.java//这是 Activity 类

@Override
protected void onCreate(Bundle savedInstanceState) {
Log.d(TAG,"About to send broadcast");
Intent sleepTimeFinishedIntent = new Intent(this, MyService.class);
sleepTimeFinishedIntent.setAction("sleepTimeFinished");
sendBroadcast(sleepTimeFinishedIntent);
Log.d(TAG,"broadcast has been sent");
}

我也尝试在 list 文件中添加接收器,但没有成功。在logcat中,我可以看到除接收器的onReceive方法之外的所有方法的日志。有人可以帮我解决这个问题吗?这个简单的问题已经困扰我好几个小时了。

最佳答案

您启动服务了吗?我没有看到在 onCreate 中启动,并且您在那里发送广播 - 也许接收器尚未注册?

关于java - 服务中的广播接收器未接收 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37900503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com