作者darkk6 (Mr. Pan)
看板AndroidDev
標題[問題] 電話狀態 Receiver 是否會延遲觸發?
時間Wed Sep 16 18:00:41 2015
不好意思,標題限制的關係,我要問的是:
READ_PHONE_STATE
我在某篇 Stack Overflow 的回應看到了使用底下 Code 監聽來電的事件
http://pastie.org/10423164
和其他寫法不同的是,他並沒有在 Receiver 中加入 Listener,
如:
TelephonyManager mgr = (TelephonyManager)context
.getSystemService(Context.TELEPHONY_SERVICE);
mgr.listen( myListener , PhoneStateListener.LISTEN_CALL_STATE);
而是純粹靠著 Broadcast Receiver 去處理來電的事件監聽。
我測試過,這樣使用沒有問題,能夠正常的接收到三個事件(鈴響、接通、掛斷)
但是在某台手機上, 卻發現常常會有,電話來了沒觸發 Receiver 的問題
程式 onReceive 中的 Log.d() 都沒顯示。
不過這種情況發生時,只要我掛掉電話 (大概讓他想個 10 秒,直接掛斷)
後大概 1~3 秒,才會看到 Logcat 跑出那些訊息。
想請問,這個狀況會有可能是什麼問題呢?
比如說手機記憶體用量太大,造成我的 Receiver 晚啟動,或者有甚麼其他問題?
感謝~~
PS : 那台手機雖然常常有這個狀況,但有時候也是正常的,電話一響就出現訊息
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.254.16.222
※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1442397645.A.C51.html
推 hungys: 也是有可能是那台手機framework有問題 09/18 11:09
→ qweqweqweqwe: 用receiver就要有可能收不到的心理準備.. 09/19 02:12
→ darkk6: 目前將 priority 加高 好像還蠻有效的XD 09/19 21:05