android短信數據庫監聽回調多次問題


在監聽android短信數據庫變化時。由於只能註冊content://sms/ 的observer。所以,在數據庫每次狀態變化的時候,都會多次回調

 


onChange 方式。目前還未找到很好的方式,解決回調多次的問題。只能通過代碼邏輯來屏蔽這個問題。
目前,我使用的方式是通過時間來過濾兩次的回調。
long lastTimeofCall = 0L;
long lastTimeofUpdate = 0L;
long threshold_time = 10000;

if (lastTimeofCall - lastTimeofUpdate < threshold_time) {

lastTimeofUpdate = System.currentTimeMillis();


return;
}


這種方式 確實能夠屏蔽數據庫兩次的狀態更新。


其實,還有另一種試,就是數據庫改變一次,做一個自己的業務操作。比如:插入或刪除。再把這次操作的id緩存 起來。下次再調用 時,從緩存中


判斷是否已經做過相應的操作了。


以上的方式,能解決一些問題。但最重要的,還是要根據自己的業務來做。


如果大家都監聽短信有更好的方式。可以留言,歡迎 一起交流。


最後,說一下爲何要用這種試監聽短信。因爲,使用也可以廣播監聽短信,但大家也知道。目前,在中國很多所謂的安全軟件很流氓,它們也會通過


各種方式監聽短信廣播。而且,有時候,在它們監聽到廣播後,就把廣播取消了,造成其它軟件無法收到廣播。


歡迎和朋友們一起交流。!!!

 


————————————————
版權聲明:本文爲CSDN博主「hudan2714」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/hudan2714/article/details/8789775

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章