你好,我正在試圖在後臺運行一個服務,當應用程序被任務管理器銷燬時它不會停止。如果服務器中存在數據庫中的新插入,則服務的思路是每「x」分鐘進行驗證。在應用程序被任務管理器殺死後,服務是否仍然可以運行?
即使我關閉應用程序,但服務運行良好,但是當我使用任務管理器銷燬我的應用程序時,所有線程也都關閉了。
所以我想知道它是否有可能運行一個線程,永遠要求在後臺,除非用戶在應用程序本身取消它,忽略任務管理器造成的破壞,所以在將來我可以使用通知欄來告訴用戶在數據庫中發生了新插入。
Tryed:
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
askServer(); // i made a timertask that ask every "x" minute
return START_STICKY;
}
,因爲我讀START_STICKY應該再次運行該服務,如果它被殺死出於某種原因,我知道這是可以做到,因爲有些應用程序獲得通過任務管理器關閉,仍然得到通知從它作爲whatsapp,bbms和其他。請告訴我,如果我錯了什麼,並感謝您的閱讀!
UPDATE:我不是試圖打破任何法律或安全規則從Android和IM不試圖忽略在設置應用程序的回採服務選項。我希望該用戶使用的,當你按下回家了,而出現的界面後聽在我的情況下,新進入的「事件」嵌入式服務繼續運行:
UPDATE:很抱歉對這個應用程序的談論很多,但是我可以用它作爲例子。在whatsapp中,當我通過界面顯示的界面顯示流程和服務被終止時,但在幾秒鐘後他們重新啓動,這正是我想要做的,以保持用戶瞭解數據庫事件。從設置你仍然可以停止服務沒有問題,甚至我可以在應用程序本身的選項停止notifiying。
OnDestroy()方法中的一個錯誤實現調用服務的一個實例,以便在銷燬後重新啓動?
UPDATE:韋爾普看起來像我的機構仍然在後臺運行後,我關閉應用程序。我只需要在我的服務設計上工作,不會浪費電池壽命和資源。另外我使用log.i()檢查服務是否正在運行,看起來像主進程關閉時我不能使用日誌或吐司只是通知(仍未實現),因爲服務在那裏運行只是不會顯示日誌。
UPDATE:現在正在使用的工作用startForeground(0,NULL)。將來,我將發送一個通知,以顯示數據庫事件發生時的情況,並調用startForeground(1,notification)。
'忽略任務管理器造成的破壞' - 我希望不會,這將是一個巨大的安全問題。 –
@MartinJames有沒有辦法在不影響安全性的情況下這樣做?即使應用程序本身已關閉並且未在taskmanager中運行,我也看到了使用通知的應用程序。 – AmirG
僅僅不運行的應用程序可以從某些觸發器開始。但是,在用戶明確啓動之前,用戶從設置菜單中殺死的內容不能執行任何操作。 –