Foregrounded服务在以后的API版本上表现不同

时间:2016-01-26 13:29:16

标签: java android service android-api-levels

tl; dr ...服务在较新的API上获得较少的运行时间。

我的Android应用程序最初是针对android 4.3(API版本18)编写的,因为我当时的手机是较旧的。现在我有了一个带Lollipop 5.1.1(API 22)的闪亮新手机。

最初尝试在新手机上天真地安装应用程序,其中大部分仍然有效。一个明显的区别是我用来在后台执行一些长重复性任务的服务不再获得与以前相同的运行时间。

该服务更新“正在进行的通知”项目,该项目通过从300-0更新倒计时然后重新开始来简单地显示服务正在运行。在旧手机上,即使手机入睡或者我正在使用其他应用程序,这也可以正常运行并且不会中断。这就是我想要的行为。

然而,在使用更高版本API的新手机上,该服务似乎几乎没有运行时间。从我的倒计时数字来看,它看起来以一两分钟的间隔获得5秒的运行时间,然后再暂停一段时间。当手机处于睡眠状态时,似乎可以获得更多的运行时间。代码从根本上仍然有效,因为coundown最终会被执行但是会一再中断。

我改变了我的Android Studio设置,专门针对这款手机的Android版本,但似乎没有解决问题。

我还是Android的新手,并不知道如何解决这个问题。

这是一个工作项目,所以我不能在这里粘贴任何代码。我使用startForeground()来开始服务,服务本身使用Handler类的内部实现来允许在单独的进程/任务中进行多线程。

0 个答案:

没有答案