2012-07-18 43 views
3

我目前有一個AlarmManagerBroadcastReceiver作爲我的警報。雖然這有一個主要缺陷,它在關閉應用程序時不會關閉。我測試了ICS日曆應用程序會發生什麼,即使我強行關閉它,它也會熄滅。我知道有些人會說「如果用戶以這種方式關閉應用程序,他們不希望它會關閉。」那麼任務殺手呢?我正在尋找這種情況。很顯然,我的方法無法實現這一點,而且我看了看,但大多數(如果不是所有的例子)都是我如何實現它的。任何想法我可以做到這一點?如何創建持續警報以通知用戶事件?

編輯:這麼看來所有的研究,我已經做了我想做的事情是不可能的,而無需用戶安裝兩個獨立的應用程序,這是不理想的。 Google有可能以這種方式製作了Calendar應用程序(因爲他們會編寫源代碼),因爲我測試了市場上的頂級Calendar應用程序,並且在用戶部隊關閉應用程序時他們都沒有關閉。所以這引出了一個問題,簡單地說,這甚至可以在單個應用程序中完成?由於Google試圖遏制開發者不允許用戶控制隨機播放的廣播或服務,這是可以理解的,這看起來很渺茫。希望這可以幫助其他人很快意識到真的沒有一種真正的方法來實際做到這一點。你所能做的就是警告用戶,以這種方式關閉你的應用程序時,他們不會得到警報;說夠了。

+0

您是否將廣播接收器掛鉤到清單或活動中? – Pyrodante 2012-07-18 04:54:22

+0

清單 – Andy 2012-07-18 04:57:31

+0

我只問,因爲我的鬧鐘已設置好,所以我懷疑這個問題或者是在植入過程中,或者是其他的問題,我的第一個線索是:爲什麼你使用帶有報警的無線電通信設備?只需掛起一個待處理意圖通過報警服務即可 – Pyrodante 2012-07-18 05:00:39

回答

2

我不會用廣播接收器與報警

廣播接收機一般提供兩種功能

1)聽的廣播從系統

2)允許自己的外部應用程序提出你的應用程序的請求。

報警管理器設置了新的報警: set(int type,long triggerAtMillis,PendingIntent操作) 安排報警。 (來自Android Documentation

放置在那裏的掛起的意向是當報警啓動時將被觸發的意圖。您可以通過將此服務置於意圖中來啓動此服務。 例如:

Intent i = new Intent(context, MyService.class) 

其中MyService是擴展Service的類。 (你可以很容易做一個活動,但有活動從不知所措的設計是可怕的設計

A Service就像一個沒有用戶界面的活動基本上,你可以讓它執行一些後臺功能,通知用戶發生了某些事情

+0

:)謝謝你再次花時間。好吧,所以我想真正理解這一點。我仍然應該使用'AlarmManager',而不是使用'BroadcastReceiver'來設置通知,我應該使用'Service'。但是不是'AlarmManager'也是一個問題?如果這不會運行,那麼它將永遠不會調用自定義的「服務」。 – Andy 2012-07-18 06:01:44

+0

報警管理器中設置的報警已在系統中註冊,除非在代碼中取消或重新啓動設備,否則任何事情都不應停止。 – Pyrodante 2012-07-18 14:04:50

+0

真的......那麼試一試它就會失敗。它工作正常,直到我強迫關閉,然後它永遠不會運行。但是你說什麼是有道理的,所以我不知道爲什麼它沒有發生。 – Andy 2012-07-18 19:46:58