android实现项目的开机自启动

使用场景:

做一些定制型应用的时候经常需要开机自启动,基本上这个应用相对于这个设备来说基本上算是系统级应用了,因为这个设备的存在基本上就是为了装载这个应用的(例如我写的三个项目都是这种场景: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);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/fishandbean/article/details/53006259