업데이트 # 2. 나의 초기 질문은 대답 한 두 사람의 친절함에 의해 해결되었다. 분명히 결과 코드가 실행되는 동안 GPS를 멈추지 않는다는 사실에 대해 새로운 질문을 시작해야합니다. 하지만 오류가 없으므로 다음과 같이 알면 해결 된 것으로 표시합니다.OnPause GPS를 중지합니다.
업데이트.
의견을 보내 주시면 감사하겠습니다. 유일한 문제는 그것이 수행해야하는 일을하지 않는다는 것입니다. 오류가 없다는 점에서 효과적입니다.
작동 시키려면 전역으로 활동 상단에 추가했습니다.
protected LocationListener ll;
protected LocationManager lm;
그리고는
@Override
protected void onPause() {
if(lm != null) {
lm.removeUpdates(ll);
}
ll = null;
lm = null;
super.onPause();
}
모든 컴파일 및 전화에서 실행이 OnPause 코드를 사용했다. GPS 위치가 표시됩니다. 문제는 애플리케이션을 종료 한 후에 배터리가 방전되지 않도록 GPS를 끄는 것입니다. 그러나 GPS는 계속 켜져 있습니다. 나는 이것이 일반적인 불만이며 대답을 보지 못했다는 것을 안다. lm.removeUpdates (ll)가 해결책이라고 생각했지만 작동하지 않습니다.
--------------- 원본 게시물 -------------------------
내 GPS 업데이트를 중지하는 OnPause 코드를 추가하고 싶습니다. 난 stackoverflow에서 질문과 답변 모두 모두 이클립스에서 오류를주는 코드의 적어도 12 개의 예제를 피곤했습니다.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textLat = (TextView)findViewById(R.id.textLat);
textLong = (TextView)findViewById(R.id.textLong);
textTimex = (TextView)findViewById(R.id.textTimex);
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener ll = new mylocationlistener();
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);
}
class mylocationlistener implements LocationListener{
@Override
public void onLocationChanged(Location location) {
if (location != null)
{
double pLat = location.getLatitude();
double pLong = location.getLongitude();
long pTime = location.getTime();
DecimalFormat df = new DecimalFormat("#.######");
textLat.setText(df.format(pLat));
textLong.setText(df.format(pLong));
textTimex.setText(Long.toString(pTime));
//textTimex.setText(Long.toString(pTime));
//textTimex.setText(df.format(pLong));
}
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
// TODO Auto-generated method stub
}
}
내가 웹에 대한 예제에서 코드를 복용하고 있는데 그들 중 누구도 작동하지 :
내 GPS 코드는 여기에 (그것을 잘 작동합니다). 여기에 하나있다
@Override
public void onPause() {
lm.removeUpdates(locationListener);
super.onPause();
}
정말로 내가 무엇이라고 부르는지는 문제가되지 않는다. 그것은 해결할 수 없다는 오류를 준다. 내가 사용하는 예제 코드는 중요하지 않으며 오류가없는 코드는 없다.
나는 매우 간단 바보 같은 일을해야...
ll과 lm을 전역으로 선언하면 응용 프로그램이 컴파일되고 실행되지만 해당 활동을 종료하면 충돌이 발생합니다. 내가 가지고있는 것은 @Override입니다. public void onPause() { lm.removeUpdates (ll); } –
@AllenEdwards : 앱이 충돌 할 때 로그를 제공 할 수 있습니까? –
@AllenEdwards : public void onPause() { super.onPause(); lm.removeUpdates (ll); }' –