2012-11-04 1 views
1

내 LocationListener에서 onLocationChanged()를 중지하는 방법 버튼을 누르면 onLocationChanged의 Toastbox가 계속 나오고 응용 프로그램을 종료하더라도 멈출 수 없습니다.내 LocationListener에서 onLocationChanged()를 중지하는 방법

Button btn_location =(Button) findViewById(R.id.button4); 
btn_location.setOnClickListener(new OnClickListener() { 
public void onClick(View v) { 


       LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
       LocationListener mlocListener = new MyLocationListener(); 
       mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener); 
     } 

    }); 

public class MyLocationListener implements LocationListener  { 


      public void onLocationChanged(Location loc)  
      { 

       loc.getLatitude();   
       loc.getLongitude();   
       String Text = "My current location is: " +   "Latitud = " + loc.getLatitude() +   "Longitud = " + loc.getLongitude();   
       Toast.makeText(getApplicationContext(), Text, Toast.LENGTH_SHORT).show();  
      }   
      public void onProviderDisabled(String provider)  
      {   
       Toast.makeText(getApplicationContext(), "Gps Disabled", Toast.LENGTH_SHORT).show();  
      }   
      public void onProviderEnabled(String provider)  
      {   
       Toast.makeText(getApplicationContext(), "Gps Enabled", Toast.LENGTH_SHORT).show();  
      }   
      public void onStatusChanged(String provider, int status, Bundle extras)  
      {   

      }  
     } 

답변

0

이를 적용 할 수 있습니다

mlocManager.removeUpdates (mlocListener를);

버튼을

또는들의 OnDestroy() 또는 onPause()

참조에 넣어 : Android Activity

0

다음 코드는 나를 위해 일한 :

@Override 
protected void onPause() { 
    // TODO Auto-generated method stub 
    super.onPause(); 
    aLocationManager.removeUpdates(aLocationListener); 
} 

그냥 전화 removeUpdates() 메소드 곳을 업데이트를 중지하고 싶다!

관련 문제