看板 AndroidDev 關於我們 聯絡資訊
我寫了一個監聽電話功能在我APP內。參照網路上實作都可以實作出來。 但是當我滑掉APP時,打電話到我的手機上實APK竟然還可以偵測到。表示我APK 根本沒有release。我滑掉APK一下再開一次,打電話時會出現兩次, 再滑掉APK再開一次會出現三次依此類推。以下是我的code MainActivity: onCreate(){ telM = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); telM.listen(new TelListener(this), PhoneStateListener.LISTEN_CALL_STATE); } protected onDestroy(){ telM.listen(new TelListener(null), PhoneStateListener.LISTEN_NONE); telM = null; finish(); } Telistener: public class TelListener extends PhoneStateListener { switch (state) { case TelephonyManager.CALL_STATE_RINGING://此时为响铃状态 //這邊出現好多次 LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent); break; case TelephonyManager.CALL_STATE_OFFHOOK: break; case TelephonyManager.CALL_STATE_IDLE: break; } super.onCallStateChanged(state, incomingNumber); } 請問有沒有人遇過這種狀況呢? 以下LZN大已有幫我解答上面的疑問非常感謝。大致整理了一下我的錯誤還有額外的疑問 ------------------------------------------------------------------------------ 我懷疑APK沒有release是因為我還有寫個 NotificationListenerService,需要在 安著手機的設定 -> 應用程式 -> 特別存取權-> 通知存取權 選擇我的service打開 這樣我的APK就能接收到應用程式的通知。 打開這個service之後,我明明已經滑掉APK了,有看到他呼叫onDestroy()。 我打電話時,卻還是收到 call event。 我將 service 關掉後,一樣保持在 onCreate() 內 telM = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); telM.listen(new TelListener(this), PhoneStateListener.LISTEN_CALL_STATE); 滑掉APK後就不會有 event 上來了。再重開一次也不會有重複的event。 第一個問題是: 為何我開啟service,滑掉apk後,他會呼叫 onDestroy(),而關掉 service,滑掉APK卻不會呼叫 onDestroy()? 第二個問題是: 為何我將service打開時,滑掉APK,卻仍然有 call event 上來? 這看似APK就是真的沒有 release? 但是我打開APK時,裏面的變數 如:onCreate() telM明明也就是 null的,難道他之前 telM.listen(new TelListener(this) new TelListener(this) 完全沒釋放嗎? 打得很長^^"不知道有沒有人看懂我的問題.. 感謝指教 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.220.69.181 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1519371217.A.4CE.html ※ 編輯: gn00618777 (61.220.69.181), 02/23/2018 15:50:38
LZN: onCreate的new TelListener用變數存,telM.listen(變數,..) 02/23 16:30
LZN: onDestroy不要在new TelListener,使用onCreate中使用的變數 02/23 16:31
LZN: 試試看 02/23 16:31
gn00618777: 這樣可行耶! why??? 02/23 16:53
gn00618777: 痾 因為new 是兩個不同記憶體 02/23 16:54
※ 編輯: gn00618777 (61.220.69.181), 02/23/2018 17:27:08 ※ 編輯: gn00618777 (61.220.69.181), 02/23/2018 17:29:02 ※ 編輯: gn00618777 (61.220.69.181), 02/23/2018 17:29:25
erty0402: 從recent app移掉並不能保證 ap會砍掉 02/23 19:51
andy2151: 你是不是把Apk跟App搞混了 02/26 12:16