2013-12-08 101 views
2

我剛試過AlarmManager,強制我的應用每天下午3點發送通知。但是,只有當應用程序仍處於後臺時,此功能纔有效。 當用戶殺死應用時,AM不再工作。我可以做什麼而不是AlarmManager來實現我想要的?即使應用已關閉,Android也會每天發送通知

回答

5

但是,這隻適用於應用程序仍然在後臺。

不,它會很好地工作,即使應用程序沒有運行,比如讓它的進程被Android終止以釋放其他應用程序的內存。

當用戶關閉應用程序時,AM不工作了

如果「殺死」你的意思是輕敲「強制停止」在設置你的應用程序用戶,那麼你的警報是不定期的,並且在用戶手動運行應用程序(例如,在主屏幕中點擊啓動器活動)之前,您的應用程序的任何內容都不會再運行。

我聽說有報道稱,當用戶停止設備提供的「任務管理器」中的應用程序時,由大腦死亡製造商製造的某些設備與「強制停止」做同樣的事情。這是不幸的。

在「殺死」的任何其他常規定義中,您的警報不受影響。

我可以做什麼而不是AlarmManager來實現我想要的功能?

什麼都沒有。如果用戶強制停止您的應用程序,則用戶不希望您的應用程序運行,因此您的應用程序將無法運行。

+0

但讓我們舉個例子:WhatsApp。當WhatsApp沒有在我的手機上運行時,我仍然收到WhatsApp新消息的通知。這就是我想要做的,這怎麼可能? – Phil

+0

@Phil:他們使用'AlarmManager'(直接或間接),或者他們收到推送通知(因爲他們碰巧是一個消息應用程序)。如果用戶強制停止WhatsApp,那麼這兩者中的任何一個都將被阻止,其中任何一個都可以在其他情況下使用。 – CommonsWare

+0

Mhm我也使用AlarmManager,我的手機上有一個按鈕,按下後會顯示所有已啓動的應用程序,我可以簡單地向左或向右滑動以關閉它們。如果我使用WhatsApp進行此操作,通知仍會發送,如果我使用我的應用程序執行此操作,則不會再發送通知 – Phil

1

您可以使用粘滯背景服務隨時隨地發送您的通知。使用簡單的運行服務,您可以安排任何任務。考慮對長時間運行的任務使用wake_lock,這些任務可能需要使處理器不處於睡眠狀態。還要考慮到電池消耗。 此致敬禮。

相關問題