服务中的BroadcastReceiver不接收广播Android

Tan*_*uan 5 android broadcastreceiver android-service

我有这个应用程序,其中用户更新了Activity中的某些变量,并且该Activity使用BroadcastReceiver将新变量传递给IntentService。但是,IntentService中的BroadcastReceiver似乎没有接收到广播。这是服务中用于创建广播​​接收器的代码

protected class UpdateReceiver extends BroadcastReceiver{
    @Override
    public void onReceive(Context context, Intent intent){
        Log.d("receiver", "Got message: ");
        //state=3;
        //Toast.makeText(context, "got it", Toast.LENGTH_SHORT).show();
    }
};
Run Code Online (Sandbox Code Playgroud)

这是在onHandle()函数中注册接收者的代码

IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("updates");
UpdateReceiver lol = new UpdateReceiver();
DetectService.this.registerReceiver(lol, intentFilter);
Run Code Online (Sandbox Code Playgroud)

最后,这是从活动发送广播的代码

Intent broadcastIntent = new Intent();
broadcastIntent.setAction("updates");
HomePageActivity.this.sendBroadcast(broadcastIntent);
Log.d("sender", "send msg");
Run Code Online (Sandbox Code Playgroud)

当我将接收器置于与广播部分相同的活动中时,它可以工作,但是当我将其放入IntentService时却不能。请帮忙!

在另一个相关说明中,我尝试在此项目中使用LocalBroadcastManager,因为广播都是本地的,但是eclipse似乎无法导入兼容性类。我已经使用Android SDK Manager安装了它。我在这里做错什么吗?

Com*_*are 4

此活动使用 BroadcastReceiver 将新变量传递给 IntentService。

这是没有意义的。用于startService()向 发送命令IntentService。并且 anIntentService不应该有 a BroadcastReceiver,因为IntentService一旦onHandleIntent()完成就会被销毁,因此永远不会收到广播。

我尝试在这个项目中使用 LocalBroadcastManager,因为广播都是本地的,但 eclipse 似乎无法导入兼容性类。

:: 耸肩 ::

以下是一个包​​含 Eclipse 项目文件的示例项目,该项目使用LocalBroadcastManager. 创建项目时我没有遇到任何特殊的 Eclipse 问题。