如何在设备启动时启动应用程序

时间:2013-07-20 12:10:40

标签: android

我开发了一个Android应用程序,对于那个应用程序,我需要在设备启动时启动我的应用程序。任何人都可以告诉我该怎么做? 谢谢你的帮助。

4 个答案:

答案 0 :(得分:1)

您应首先为该

添加权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

然后在清单中定义一个接收器,

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

然后在代码中定义接收器

public class BootUpReceiver extends BroadcastReceiver{

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

}

答案 1 :(得分:1)

您需要按照

等步骤进行操作

1)注册一个行动"android.intent.action.BOOT_COMPLETED"

的broadCast接收器

2)然后在接收者的onReceive方法中,您可以开始您的活动/服务或采取任何行动作为您的要求。你已经在申请中了。

不要忘记在清单文件中添加相应的权限

Here is the same question/conversation

答案 2 :(得分:0)

使用具有android.intent.action.BOOT_COMPLETED作为intent-filter操作的广播接收器,在AndroidManifest中注册然后在onReceive方法上,启动所需的应用程序组件。

答案 3 :(得分:0)

您应该注册一个BroadcastReceiver,然后在该接收者中收听ACTION_BOOT_COMPLETED事件。

public class yourBroadcastReceiver extends BroadcastReceiver{

    @Override
    public void onReceive(Context ctxt, Intent intent) {
        // TODO Auto-generated method stub
        if(Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
            Intent selfIntent = new Intent(Intent.ACTION_MAIN);
            selfIntent.setClass(ctxt,  DestActivty.class);
            selfIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            ctxt.startActivity(selfIntent);                         
        }
    }

}

您还需要修改AndroidManifest文件并在Application节点中注册此接收器

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

这也是

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