在Android中启动应用程序

在Android中启动应用程序,android,startup,Android,Startup,我正在尝试启动main活动,这是Android操作系统启动时唯一一个名为main活动的活动。该应用程序已安装在内部存储器上,但它表示很遗憾,应用程序的appName已停止。我正在使用引导接收代码,如下所示 .java文件中的我的MainActivity代码 public class BootUpReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent

我正在尝试启动main活动,这是Android操作系统启动时唯一一个名为main活动的活动。该应用程序已安装在内部存储器上,但它表示很遗憾,应用程序的appName已停止。我正在使用引导接收代码,如下所示

.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>

最后,在寻找了一段时间后,为了某个被困在这里的人,做了正确的事情。您需要做的是在一个单独的包中注册onReceive函数,当我将代码放入MainActivity类及其包中时,我在Logcat中得到的错误是Classnotfound。一旦我将onReceive函数更改为new package,应用程序就可以完美地工作。

尝试以下方法:

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);
        }  
    }
}

在AndroidManifest.xml中的应用程序标记之前添加权限后,请尝试此操作,并在应用程序崩溃时添加带有问题的logcat结果。为了快速回复,权限已添加到清单文件中。当我重新启动Android电视盒时,应用程序正在崩溃,10秒后,它显示应用程序已停止。请从Receiver标记的下面一行删除此内容,并将其添加到manifiest Android中的应用程序标记上方:permission=Android.permission.RECEIVE\u BOOT\u completedDo,不工作:你在logcat中得到了什么吗?当你在清单中添加receiver时,用完整的名称空间添加它,即包名,然后广播类名。现在应该可以了。