小编isc*_*ind的帖子

BOOT_COMPLETE和ACTION_SHUTDOWN从不调用BroadcastReceiver

我想使用BroadcastReceiver捕获ACTION_SHUTDOWN和BOOT_COMPLETE.但事实证明两个信号都不会触发BroadcastReceiver(我没有看到任何登录logcat).这是我的源代码.

我给了Manifest许可

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
Run Code Online (Sandbox Code Playgroud)

我尝试以两种方式注册BroadcastReceiver

protected void onCreate(Bundle savedInstanceState)
{
    registerReceiver(BootReceiver, new IntentFilter(Intent.ACTION_BOOT_COMPLETED));
    registerReceiver(ShutDownReceiver, new IntentFilter(Intent.ACTION_SHUTDOWN));
}

<receiver android:name=".BootReceiver" 
          android:permission="android.permission.RECEIVE_BOOT_COMPLETED" >
      <intent-filter>
          <action android:name="android.intent.action.BOOT_COMPLETED" />
          <action android:name="android.intent.action.QUICKBOOT_POWERON" />
          <category android:name="android.intent.category.DEFAULT" />
      </intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)

BootReceiver和ShutDownReceiver的源代码如下

private BroadcastReceiver BootReceiver  = new BroadcastReceiver()
{
    private String ACTION_BOOT = "android.intent.action.BOOT_COMPLETED";
    @Override
    public void onReceive(Context context, Intent intent) {
        if(intent.getAction().equals(ACTION_BOOT)){
            //my stuff  
            Log.d("Power", "Boot Complete");
        }
    }
};

private BroadcastReceiver ShutDownReceiver = new BroadcastReceiver()
{
    private String ACTION_SHUTDOWN = "android.intent.action.ACTION_SHUTDOWN";
    @Override
    public void onReceive(Context …
Run Code Online (Sandbox Code Playgroud)

boot android broadcastreceiver

2
推荐指数
1
解决办法
5692
查看次数

标签 统计

android ×1

boot ×1

broadcastreceiver ×1