有没有办法标记我的Android应用程序进程“忙”?

问题描述:

我在Android上有一个下载器应用程序。有没有办法标记我的Android应用程序进程“忙”?

在下载期间显示通知(进行中,不可忽略) 并且它还捕获一个唤醒锁。 我甚至要求用户禁用我的应用程序的打盹。

但是,来自不同供应商的省电功能似乎忽略了它并随机杀死它。

有没有办法将我的应用程序进程标记为“忙碌”, ,以便它在非进入列表中具有更高的优先级?

请注意,我没有在我的应用程序中使用服务。 定期活动产生一个线程并从那里处理下载。

请注意,我不是在我的应用程序

使用服务,将是你的问题的大部分份额。

定期活动会产生一个线程,并从那里处理下载。

这意味着Android不知道您正在做的任何事情,用户会重视,当你不在前台。 Android会高兴地终止您的进程,释放其他进程的系统RAM。

使用服务,可能是IntentService(因为它已经有一个后台线程,并且一旦你的工作完成它会自动关闭)。将您的Notification转换为一个用于startForeground()的服务。

如果您长时间保持唤醒,那么最好让用户知道它,使用CommonsWare指出的前台服务。

但是,如果您的用例不能保证任何前景行为,那么我会建议您使用框架JobScheduler,该框架在打盹和应用程序待机方面表现​​良好。 对于API 21之前的版本,您可以使用JobDispatcher API。

您可以阅读更多的细节here