关于如何安卓app保证在后台运行的问题

我现在做了个app,期望他始终在后台运行,并通过一个线程和服务器进行心跳,已实现的大略如下:

1、创建了一个MyService类
2、在MainActivity onCreate时:
1)startService(new Intent(this, MyService .class)); 将MyService启动
2)设置一个定时alarm 不断启动这个MySercice
Intent intentAlarm2 = new Intent(this, MyService.class);
PendingIntent sender2 = PendingIntent.getService(this, 0, intentAlarm2, 0);
AlarmManager alarmManager2 = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager2.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 60 * 1000, sender2);

3、在MyService类的OnStartCommand里,启动了一个线程,该线程每隔一定时间和服务器心跳一次
4、在MyService类的OnStartCommand里,创建并绑定了一个notification,并将该service设置为前台程序 startForeground(0x1982, notification);
5、该MyService类的OnStartCommand返回 return START_STICKY_COMPATIBILITY;

6、在MyService类的onDestroy()里重载并执行重新创建MyService并启动
7、启动app已经拿到后台运行权限ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS

现在的问题是:
1、app可以再后台持续运行一段时间,大约是4个小时,通过线程定时打印可以看到在后台运行情况
2、状态栏也存在由MyService创建的notifycation图标
3、大约4小时候,服务和线程停止,没有报错,也没有进入onDestroy()入口。手机上能看到应用程序的任务在后台,但是线程和服务没有了,应该是主进程没有被杀。

4、有一个另外的三方app(非白名单)却可以实现一直不被杀掉。所以,怀疑还有其他方案可以保证不被杀掉

望采纳。。

最正确的后台保活方案:http://t.csdn.cn/Lg9JM

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^