2016-12-11 64 views
1

我在Android上有一個下載器應用程序。有沒有辦法標記我的Android應用程序進程「忙」?

在下載期間顯示通知(進行中,不可忽略) 並且它還捕獲一個喚醒鎖。 我甚至要求用戶禁用我的應用程序的打盹。

但是,來自不同供應商的省電功能似乎忽略了它並隨機殺死它。

有沒有辦法將我的應用程序進程標記爲「忙碌」, ,以便它在非進入列表中具有更高的優先級?

請注意,我沒有在我的應用程序中使用服務。 定期活動產生一個線程並從那裏處理下載。

回答

0

請注意,我不是在我的應用程序

使用服務,將是你的問題的大部分份額。

定期活動會產生一個線程,並從那裏處理下載。

這意味着Android不知道您正在做的任何事情,用戶會重視,當你不在前臺。 Android會高興地終止您的進程,釋放其他進程的系統RAM。

使用服務,可能是IntentService(因爲它已經有一個後臺線程,並且一旦你的工作完成它會自動關閉)。將您的Notification轉換爲一個用於startForeground()的服務。

0

如果您長時間保持喚醒,那麼最好讓用戶知道它,使用CommonsWare指出的前臺服務。

但是,如果您的用例不能保證任何前景行爲,那麼我會建議您使用框架JobScheduler,該框架在打盹和應用程序待機方面表現​​良好。 對於API 21之前的版本,您可以使用JobDispatcher API。

您可以閱讀更多的細節here

相關問題