作者ivanf10710 (Ivan)
看板AndroidDev
標題Re: [問題] 請問該如何建置每週重復的AlarmManager
時間Thu Jul 19 16:19:48 2012
Mia謝謝您的解答,還有一個問題想請教您一下
我的鬧鐘觸發的method如下:
private void fireTime(long firetime) {
AlarmAnager alarm = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent i = new Intent();
i.setAction("go");
PendingIntent sender = PendingIntent.getBroadcast(this, 0 , intent, 0);
alram.setRepeating(AlarmManager.RTC_WAKEUP, firetime,
5*1000, sender);
}
MyReceiver的onReceive如下:
Intent i = new Intent();
if(intent.getAction().equals("go")) {
Toast.makeText(context, "gogogo", Toast.LENGTH_LONG).show();
}
Menifest也註冊了
<receiver android name = ".MyReciever">
<intent - filter>
<action android:name = "go">
</intent - filter>
</receiver>
但是run起來MyReceiver卻都沒收到廣播,不會執行Toast
我有哪個地方漏掉嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.134.150
→ hijamoya:確定你的context是誰... 有時候他根本不存在 你可以先用 07/19 19:03
→ hijamoya:LOG來看看他有沒有印出來 07/19 19:03
→ hijamoya:如果有的話就代表廣播是有 而只是toast的context的問題 07/19 19:03
推 sdyy:你receiver裡面怎麼會有Intent i = new Intent(); 07/19 22:32
→ sdyy:你這樣下面那行永遠都不會執行阿 07/19 22:33
→ sdyy:應該是直接接receiver的intent才對 07/19 22:34
→ ivanf10710:還很新聽不太懂S大說的,可以解釋一下嗎@@? 07/19 23:03
→ ivanf10710:感謝H大跟S大,兩位的回答剛好解決我的問題 07/20 00:06
→ ivanf10710:S大說的把new Intent()去掉我懂了!!是要以receiver 07/20 00:07
→ ivanf10710:的onRecieve()裡的intent來用才對 07/20 00:08
→ ivanf10710:收到以後就說現H大說得事情了,context是錯的 07/20 00:09
→ ivanf10710:我原本是設在按下Button才會發送廣播,但是他一RUN起來 07/20 00:09
→ ivanf10710:就直接show Toast了-.-但是我還沒解決context的問題 07/20 00:10