android.intent.action.BOOT_COMPLETED"重启"或"重启"未收到意图

Tib*_*biG 12 android android-intent android-broadcast

android.intent.action.BOOT_COMPLETED如果我使用"重新启动""重新启动",则不会收到Android Intent ,但如果我关闭并打开设备,则会有效.有没有办法使这项工作?

Gir*_*hai 30

<action android:name="android.intent.action.QUICKBOOT_POWERON" /> 
Run Code Online (Sandbox Code Playgroud)

  • 官方文档中是否有对 QUICKBOOT_POWERON 的引用?我搜索但找不到一个。但它有效,我自己在清单中添加了它,代码和 Android 识别了它。 (5认同)
  • 谢谢。但是由于 Android 8 只允许“BOOT_COMPLETED”广播?我应该如何解决这个问题?由于不再允许`QUICKBOOT_POWERON`。 (2认同)
  • 如今使用“android.intent.action.QUICKBOOT_POWERON”仍然有用吗?如果不是,来自哪个 API? (2认同)

小智 5

请添加以下权限:

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

并在 manifest.zml 中添加 Receiver Class 条目:

<receiver android:name="com.example.receivers.BootReceiver" >
Run Code Online (Sandbox Code Playgroud)

现在接收器类:

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

public class BootReceiver extends BroadcastReceiver {

  private static final String TAG = "Boot Receiver:::";
   /*
    * (non-Javadoc)
    * 
    * @see android.content.BroadcastReceiver#onReceive(android.content.Context,
    * android.content.Intent)
    */
    @Override
    public void onReceive(Context context, Intent intent) {
      if (intent != null) {
        if (intent.getAction().equalsIgnoreCase(
                Intent.ACTION_BOOT_COMPLETED)) {

            //Boot Receiver Called
        }
      }
    }
 }
Run Code Online (Sandbox Code Playgroud)

现在清理并运行您的应用程序。希望在您打开/关闭或重新启动设备后会调用该类。让我知道您的反馈。