1

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

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

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

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

然而,在具有更高版本 API 的新手机上,该服务似乎根本没有运行时。从我的倒计时数字来看,它似乎每隔一两分钟就运行了 5 秒,然后又停止了一段时间。当手机处于睡眠状态时,它似乎获得了更多的运行时间。代码基本上仍然有效,因为计数最终会被执行,但会反复中断。

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

我对 Android 还是比较陌生,并不知道如何解决这个问题。

这是一个工作项目,所以很遗憾,我无法在此处粘贴任何代码。我正在使用 startForeground() 来启动服务,并且服务本身使用 Handler 类的内部实现来允许在单独的进程/任务中进行多线程处理。

4

0 回答 0