在Android中启动启动应用程序

时间:2013-03-08 07:07:37

标签: android startup

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

2 个答案:

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

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