Android 广播接收器无法工作

标签 android broadcastreceiver

我有一个非常简单的问题,却让我抓狂。我正在创建一个 BroadcastReceiver,在 list 上声明它,但它只是不会运行。我试图让它在设备启动时触发。代码如下:

package com.vullnetdyla.bcreceiver;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class Receiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.d("ftw", "It worked");
    }
}

list 文件:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.vullnetdyla.bcreceiver"
android:versionCode="1"
android:versionName="1.0">

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<application android:label="@string/app_name"
    android:icon="@drawable/ic_launcher"
    android:theme="@style/AppTheme">

    <receiver android:name="com.vullnetdyla.bcreceiver.Receiver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>

</application>

最佳答案

您有一些用户可以启动的 Activity 吗?

如果不是,这就是你的问题!由于 android 3.1 安装后应用程序(更具体地说是包)处于停止状态并且不会收到任何广播。用户必须手动启动它至少一次才能使其工作。 请参阅 release notes 中的“对已停止的应用程序启动控件”部分。 Android 3.1。
另请参阅标志 FLAG_INCLUDE_STOPPED_PACKAGES , FLAG_EXCLUDE_STOPPED_PACKAGES .

关于Android 广播接收器无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11865434/

相关文章:

java - 如何让异步任务在 Android 中完成

android - 如何启用 ListFragment 的快速滚动?

android spotify 错误分离线程与 interp 帧(计数 = 28)

java - 如何膨胀从 onCreateView() 返回的 View

android - BroadcastReceiver 作为它自己的类还是在 Activity 或服务类中内部实例化它?哪个更好?

java - 使用广播接收器接收长进程短信的最佳方式

android - 如何使用 Intent 操作 USER_PRESENT?

android - 为什么要使用 setX 和 setY?

android - BroadcastReceiver 不保存局部变量

android - 为什么 BroadcastReceiver 在没有实例的情况下也能工作?