您的位置:首页 > 移动开发 > Android开发

android实现项目的开机自启动

2016-11-02 11:21 232 查看
使用场景:

做一些定制型应用的时候经常需要开机自启动,基本上这个应用相对于这个设备来说基本上算是系统级应用了,因为这个设备的存在基本上就是为了装载这个应用的(例如我写的三个项目都是这种场景:pos机收单收款的app,公交上刷卡展示广告的app,学校挂在班级里面展示校园风采的app)

涉及技术:

BroadcaseReceiver(广播接收者)

实现原理:

监听设备的开机启动广播,自定义一个BroadcastReceiver ,在BroadcastReceiver 里面重写onReceive方法,在onReceive方法里面开启我们的应用。

实现代码:

//注意事项:安卓中的四大组件都是要在清单文件中注册的,不上户口程序不认识你,会崩溃的哦!

public class BootReceiver extends BroadcastReceiver {

   static final String ACTION = "android.intent.action.BOOT_COMPLETED";

    @Override

    public void onReceive(Context context, Intent intent) {

       if (intent.getAction().equals(ACTION)) {

            Intent mainActivityIntent = new Intent(context, HomeActivity.class);//开启主界面

//在非activity里面开启activity必须加上这一行代码(原因是安卓的机制,在activity中开启activity的时候,会查找是否存在这个任务栈,

//如果没有的话activity会创建一个任务栈,但是在广播接收者里面没有这样的机制,加上这一行代码的意思就是重新开启一个任务栈,不加会崩溃的)

            mainActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

            context.startActivity(mainActivityIntent);

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android