2017-08-28 14 views
1

我有一個工作應用程序,當用戶距離地圖上某個點的預定義距離時,會張貼敬酒。用戶在特定區域時如何發送吐司?

要從用戶位置收到我的距離和角度我用

final float result[] = new float[2]; 
Location.distanceBetween(prevJoblatlng.latitude, prevJoblatlng.longitude, myLocationMarker.getPosition().latitude, myLocationMarker.getPosition().longitude, result); 

而在onLocationChanged功能我用了一個處理程序,以每十秒鐘後。

new Handler().postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       if (result[0] <= circle.getRadius()) { 
        Toast.makeText(MainActivity.this, "You're nearby a task.", Toast.LENGTH_SHORT).show(); 
       } 
      } 
     }, 10000); 

但是這是工作,但不知何故,當用戶離開的是處理程序仍處於隊列,併發送祝酒。 一旦我超越了距離,我該如何阻止處理程序?

+1

https://stackoverflow.com/questions/5883635/how-to-remove-all-callback-from-a-handler – Nick

+0

通過代碼的所有行,只是與文檔摸索,發現了這個精確解決方案謝了哥們。 –

回答

1
handler.removeCallbacksAndMessages(null); 
+0

這不是一個好的答案,請告訴我關於slient – aidinMC