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

问题描述 投票:1回答:2

我在Android上有一个下载程序。

它在下载过程中显示通知(正在进行中,不可忽略),它还会捕获唤醒锁。我甚至要求用户为我的应用禁用Doze。

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

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

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

android kill
2个回答
0
投票

请注意,我没有在我的应用中使用服务

那将是你问题的最大份额。

常规活动产生一个线程,并从那里处理下载。

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

使用服务,也许是IntentService(因为它已经有了一个后台线程,一旦你的工作完成就会自动关闭)。在服务中将Notification转换为startForeground()


0
投票

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

但是,如果您的用例不保证任何前景行为,那么我建议您使用框架JobScheduler,它与打盹和应用程序待机状态也很好。对于早于API 21,您可以使用JobDispatcher API。

你可以阅读更多细节here

© www.soinside.com 2019 - 2024. All rights reserved.