Android - BroadcastReceiver尝试在无序广播期间返回结果

时间:2011-09-06 18:31:35

标签: android bootcompleted

我正在尝试捕获BOOT_COMPLETED意图。在我的接收器中,我只是在Log上打印一些东西。在Logcat中我收到此错误,并且我放置的日志语句永远不会打印出来。我已在清单中设置了

的权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

并且还在我的接收器中声明了所需的意图过滤器。我做错了什么?

2 个答案:

答案 0 :(得分:3)

  

我做错了什么?

鉴于您提供的信息有限,这是不可能回答的。您的<intent-filter>可能是您的操作字符串错误。

Here is a sample project完全符合您的描述(启动时接收器向LogCat写入消息)。

答案 1 :(得分:2)

我也遇到了这个问题,找到了这个答案并通过使用CommonsWare的示例代码来解决它:

当您在onReceive()中调用setResultData(...)时,您将收到此错误 - BroadcastReceiver的方法并对无序广播作出反应。看起来启动广播是非订购的。另见:Developer docs

@Override
public void onReceive(Context context, Intent intent)
{
    try
    {
            Intent serviceIntent = new Intent(context, MyService.class);                
            context.startService(serviceIntent);
            // setResultData(null);
    }
    catch (Exception exception)
    {
        exception.printStackTrace();
    }
}