[問題] 監聽電話

作者: gn00618777 (非常念舊)   2018-02-23 15:33:33
我寫了一個監聽電話功能在我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大已有幫我解答上面的疑問非常感謝。大致整理了一下我的錯誤還有額外的疑問
作者: LZN (秋)   2018-02-23 16:30:00
onCreate的new TelListener用變數存,telM.listen(變數,..)onDestroy不要在new TelListener,使用onCreate中使用的變數試試看
作者: gn00618777 (非常念舊)   2018-02-23 16:53:00
這樣可行耶! why???痾 因為new 是兩個不同記憶體
作者: erty0402 (缺副駕駛)   2018-02-23 19:51:00
從recent app移掉並不能保證 ap會砍掉
作者: andy2151 (阿鴻)   2018-02-26 12:16:00
你是不是把Apk跟App搞混了

Links booklink

Contact Us: admin [ a t ] ucptt.com