我正在尝试启动Android操作系统启动时名为“MainActivity”的主要活动(这是唯一的活动)。该应用程序安装在内部存储上,但它说不幸的是,该应用程序(应用程序的名称)已停止。我正在使用如下的Boot Receive代码
.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>
答案 0 :(得分:0)
最后,在搜索了一段时间之后做了正确的事,对于那些被困在这里的人。你需要做的是在一个单独的包中注册onReceive函数,我在Logcat中得到错误的是Classnotfound,因为我将代码放在我的MainActivity类及其包中。只要我将onReceive函数更改为新包,应用程序就能完美运行。
答案 1 :(得分:-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);
}
}
}