0

我正在尝试在 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>
4

2 回答 2

0

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

于 2013-03-11T10:51:21.163 回答
-1

试试这个:

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

于 2016-04-21T19:52:24.010 回答