android|android 开机自启与服务不停止运行

重点第一句话:我做的这个app,是面向内部公司客服或销售的,他们的手机我们是可控的。


反正看到百度上各种自启,有效的?都没提到要在手机上去允许程序自启?我反正是干不过系统,接下来上代码。
//AndroidManifest.xml
//头部manifest


//开启权限


【android|android 开机自启与服务不停止运行】//Broadcast
//解释下:由于自启服务是受系统保护的,由系统发送,包含4.4及以后的系统,我自己注册一个Broadcast Receiver接受广播就行了
static final String action_boot ="android.intent.action.BOOT_COMPLETED"; @Override public void onReceive(Context context, Intent mintent) { if (mintent.getAction().equals(action_boot)) { // 启动完成 Intent intent = new Intent(context, AlarmReceiver.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction("rece.alarm.action"); PendingIntent sender = PendingIntent.getBroadcast(context, 0, intent, 0); //领导叫我服务一直开着 隔周期去调 long firstime = SystemClock.elapsedRealtime(); AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); // 10秒一个周期,不停的发送广播 am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstime,10 * 1000, sender); } }

//注意 开机自启俩前提(我是这么做的):1.代码布置好后,运行,去手机开启设置允许app自启
//2.重启手机
//AlarmReceiver
@Override public void onReceive(Context context, Intent intent) {if (intent.getAction().equals("rece.alarm.action")) { Log.d("AlarmReceiv============","进来"); Intent i = new Intent(); //至于service里你要做什么事情,看你需要什么了,就不上传了。 i.setClass(context, SelfStartingService.class); // 启动service // 多次调用startService并不会启动多个service 而是会多次调用onStart context.startService(i); } }


//最后实现成了:1.开机自启 2.双击退出app,按下电源键 3.强制性手动(相当于历史记录)划掉app,这个服务都是开启的。(第三方和手机自带强行停止没试过)

我有idea了再更新,先在这里。。





    推荐阅读