android - 关于 android.intent.action.BOOT_COMPLETED

标签 android xml

<分区>

我写了一个示例来学习 BroadcastReceiver..但是当我重启我的手机时,应用程序崩溃了。这是我的源代码和 manifest.xml:

 public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
    }

    public class BootCompleteReceiver extends BroadcastReceiver
    {

      @Override
      public void onReceive(Context context, Intent intent) {
          Toast.makeText(context,"Boot Complete",Toast.LENGTH_LONG).show();

      }
    }
  }

 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.boot"
    android:versionCode="1"
    android:versionName="1.0" >

  <uses-sdk
      android:minSdkVersion="14"
      android:targetSdkVersion="17" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

  <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
  <application
      android:allowBackup="true"
     android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      <activity
          android:name=".MainActivity"
          android:label="@string/app_name" >
          <intent-filter>
              <action android:name="android.intent.action.MAIN" />

              <category android:name="android.intent.category.LAUNCHER" />
          </intent-filter>
      </activity>        
      <receiver android:name=".BootCompleteReceiver" >
          <intent-filter>
              <action android:name="android.intent.action.BOOT_COMPLETED" />

          </intent-filter>           
      </receiver>
  </application>

</manifest>

最佳答案

至少根据您在答案中显示的代码,您没有名为 com.example.boot.BootCompleteReceiver 的类。

当你有一个名为 BootCompleteReceiver 的类时:

  • 它是MainActivity的内部类,所以BootCompleteReceiver没有命名为com.example.boot.BootCompleteReceiver

  • 它是 MainActivity 的常规内部类(没有 static 关键字),因此 Android 无法创建它的实例,即使您有 list 中的正确名称

要么将 BootCompleteReceiver 移动到它自己的 .java 文件中的常规独立 Java 类,要么使其成为内部的 public static class 主 Activity 。在后一种情况下, list 条目的完全限定类名称将是 com.example.boot.MainActivity$BootCompleteReceiver

关于android - 关于 android.intent.action.BOOT_COMPLETED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54077598/

相关文章:

android - 如何在android中重新启动时不关闭的警报通知

android - System.ArgumentException'jobject' 不能为 IntPtr.Zero。参数名称 : jobject

android - 绕过 Android 模拟器中的特定网址

java - 更改自定义 ProgressBar 的大小

android - 如何在 Android 中签署 XML 文档或验证 XML 文档签名

xml - 我可以使用 VBA 中的变量更新 XML 节点值吗

android - 如何在本地设置Android应用程序中的屏幕亮度

android - 不正确的用户界面 - android

java - 如何使用 Java 将包含代码和不同 namespace 的 XML 转换为对象?

PHP XML 验证在传递错误 XML 时抛出致命异常