android 关屏 如何保持程序继续运行?

手机荣耀6,系统android8,关屏后大约5秒程序就无法运行了,service中的线程被挂起,alarm也无法唤醒, 开屏后把程序点开,一切运行正常。
程序功能:6秒种发一次通知,用alarm没成功,在service中开线程循环sleep6秒一次,没成功(实际需求是6秒向服务器请求一次新订单,为排查问题,暂不请求服务器)
1.插电情况下关屏不影响,运行正常。
2.允许后台启动,允许后台运行,允许通知,加入白名单,都不管用。
3.mWakeLock.acquire()不管用
4.service独立进程运行,广播也独立进程运行,不管用
5.am.setExactAndAllowWhileIdle(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 6000, mPendingIntent); 不管用
6.手机上装的微信确能在关屏状态下收到消息,不知道微信是如何实现的。
哪位高人可以指点一下,不胜感激!

主要看第二个方法:(A,Bservice在两个进程中,所以要用到AIDL来跨进程)

在原本只有一个serviceA的情况下再声明一个serviceB,并为之新开启一个进程;

serviceA被杀死的时候,serviceB立刻重启serviceA;(在serviceB中重写ServiceConnection中的Connect和Disconnect方法,在disconnect中start和bindserviceA);

如下:在主服务StepService中的Disconnect方法中start和bindservice GuardService;

serviceB被杀死的时候,serviceA立刻重启serviceB;(在serviceA中重写ServiceConnection中的Connect和Disconnect方法,在disconnect中start和bindserviceB)

两个进程互相守护
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-11-30
手机实现程序后台运行的方法:打开软件后不要点击返回键退出,直接点击Home键,该程序将在系统后台运行。本回答被网友采纳
第2个回答  2018-11-30
系统有锁屏清理,你没勾选不清理,就会把你的应用清理了,定时任务也失效了
第3个回答  2018-11-30
设置系统清理锁屏后台的逻辑就可以了。
第4个回答  2018-11-30
ROOt
相似回答