【问题标题】:Start Application on Startup in Android在 Android 中启动时启动应用程序
【发布时间】:2016-04-22 04:59:43
【问题描述】:

我正在尝试在 Android 操作系统启动时启动名为“MainActivity”的主要活动(这是唯一的活动)。该应用程序已安装在内部存储上,但显示“不幸的是,应用程序(应用程序名称)已停止”。我正在使用下面的引导接收代码

我在 .java 文件中的 MainActivity 代码

public class BootUpReceiver extends BroadcastReceiver
{

    @Override
    public void onReceive(Context context, Intent intent) {
            Intent i = new Intent(context, MainActivity.class);  
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);  
    }
}

AndroidManifest.xml

   <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

      <receiver android:enabled="true" android:name=".BootUpReceiver"
    android:permission="android.permission.RECEIVE_BOOT_COMPLETED">

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

【问题讨论】:

  • 在AndroidManifest.xml中的应用标签前添加&lt;uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /&gt;权限后尝试,并在应用崩溃时添加带有问题的logcat结果
  • 感谢您的快速回复,权限已添加到 Manifest 文件中。当我重新启动 Android 电视盒时,应用程序崩溃,10 秒后它说应用程序已停止。
  • 请从接收者标签中删除以下行并将其添加到manifiest android中的应用程序标签上方:permission="android.permission.RECEIVE_BOOT_COMPLETED"
  • 做了,不工作:(
  • 你在 logcat 中得到了什么吗?

标签: android startup


【解决方案1】:

终于,经过一段时间的搜索,做了正确的事情,对于一个被困在这里的人。你需要做的是在一个单独的包中注册 onReceive 函数,我在 Logcat 中得到的错误是 Classnotfound,因为我将代码放在我的 MainActivity 类及其包中。一旦我将 onReceive 函数更改为新包,应用程序就可以完美运行。

【讨论】:

  • 当你在清单中添加接收器时,添加完整的命名空间,即包名,然后广播类名。它现在应该可以工作了。
【解决方案2】:

试试这个:

public class BootUpReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if(action.equalsIgnoreCase("android.intent.action.BOOT_COMPLETED")) {
            Intent i = new Intent(context, MainActivity.class);  
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);
        }  
    }
}

https://stackoverflow.com/a/11079306/6237295

【讨论】:

    猜你喜欢
    • 2012-05-12
    • 1970-01-01
    • 1970-01-01
    • 2013-03-10
    • 2015-10-28
    • 2019-06-15
    • 1970-01-01
    • 2020-02-10
    • 2013-10-22
    相关资源
    最近更新 更多