我有一个非常简单的问题,却让我抓狂。我正在创建一个 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/