閱讀51 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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緩存 起來。下次再調用 時,從緩存中


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


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


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


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


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


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




最後更新:2017-04-03 20:51:31

  上一篇:go 使用 Git 管理源代碼
  下一篇:go nagios-plugin 編譯