作者infoer (infoer)
看板AndroidDev
標題[問題] service內使用notification問題
時間Sat Jul 2 13:38:11 2011
大家好,我想請問
我寫了一個sendBroadcast在service的thread內
大致是這樣
Intent alert = new Intent(NO_TI);
sendBroadcast(alert);
Log.d("send","ok");
關於broadcastReceiver也是寫在service內
broadcastReceiver裡面我寫了notification
執行之後在手機上這個版本是可以跑的
(也就是NOTIFICATION會跳出來,Log.d("send","ok")也會有)
但是如果改成
for(int i=0; i<=1000000; i++){
String j = Integer.toString(i);
Log.d("printJ",j);
}
Intent alert = new Intent(NO_TI)
sendBroadcast(alert);
Log.d("send","ok");
這樣執行不僅notification出不來,連send,ok的log也出不來
但是i如果夠小例如
for(int i=0; i<=50; i++){...}
這樣就又可以了
請問這樣有可能是什麼問題呢??
謝謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.74.107
1F:推 milochen:PrintJ 的 Log 應該有出來吧 ? 不曉得是不是卡在回圈吶? 07/02 18:21
2F:推 tomap41017:Service會有時間限制喔!!可能ANR了 07/02 20:22
3F:→ tomap41017:要知道Service還是在UIThread run的 07/02 20:22
4F:→ tomap41017:除非使用IntentService 07/02 20:22
5F:→ infoer:to milochen:PrintJ是有印出來,但是印完迴圈跑完就沒了.. 07/03 10:24
6F:→ infoer:to tomap41017:可是這時候我的service不是還在run嗎?? 07/03 10:25
8F:→ infoer:這邊有說到 triggers ANR 可是那時候我還沒有SEND出去 07/03 10:27
9F:→ infoer:應該不算十秒內還沒做完吧?? 還是我理解錯誤了?? 謝謝!! 07/03 10:28
10F:推 milochen:所以你的意思是指PrintJ上可以看到印出 1000000 07/03 23:13
11F:推 milochen:但後來就什麼Log也看不到了,對嗎 ? 07/03 23:14
12F:推 milochen:如果是這樣子的話,或許有機會是因為超過Logcat的極限 07/03 23:16
13F:推 milochen:或許可以改成這樣子 ... 看看能不能看到send ok的log 07/03 23:16
14F:推 milochen:for(int i=0; i<=1000000; i++){ 07/03 23:16
15F:推 milochen: if(i % 100000 == 0) { 07/03 23:16
16F:推 milochen: String j = Integer.toString(i); 07/03 23:17
17F:推 milochen: Log.d("printJ",j); 07/03 23:17
18F:推 milochen: } 07/03 23:17
19F:推 milochen:} 07/03 23:17
20F:→ infoer:謝謝m大的回應 我改成for(int i=1;i<=任意;i++){...} 07/04 11:46
21F:→ infoer:這樣printJ都可以印出來,但是我下面的sendbroadcast卻壞了 07/04 11:47
22F:→ infoer:notification出不來,但如果改成i<=30000以下 卻可以出來 07/04 11:48
23F:→ infoer:請問迴圈裡的i為什麼會把我的broadcast搞壞阿?? 謝謝指教!! 07/04 11:49
24F:推 milochen:我沒有這樣子寫過,不過真的太神奇了。你有現成sample嗎 07/04 13:23