android - 如何在应用程序被杀死时自动删除位置更新IntentService

时间:2014-01-23 09:46:02

标签: android location intentservice

有一个IntentService每隔10秒更新一次位置。

mIntentService = new Intent(mActivity.getApplicationContext(), MyService.class);

mPendingIntent = PendingIntent.getService(mActivity.getApplicationContext(), 0,
                       mIntentService, PendingIntent.FLAG_UPDATE_CURRENT);

mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,
            10*1000, 0, mPendingIntent);

当应用程序被杀时,位置更新不会停止,它仍然每10秒运行一次。我无法删除onDestroy()方法中的位置更新,因为即使我们离开活动,也必须运行此服务。当应用程序被杀时,位置更新服务如何自动解决?

2 个答案:

答案 0 :(得分:0)

完成后,您需要删除mLocationManager的更新

locationManager.removeUpdates(this);

答案 1 :(得分:0)

mLocationManager.removeUpdates(本);已经足够了,但是也可以检查以确保您的应用程序不会崩溃。如果这对您有帮助,请单击左侧的标记。

@Override
public void onDestroy() {
    super.onDestroy();

    removeLocationUpdates();
}

public void removeLocationUpdates(){

    if( mLocationManager != null && networkLocationListener != null ){
        if( mLocationManager.isProviderEnabled( LocationManager.GPS_PROVIDER ) ){
            mLocationManager.removeUpdates(networkLocationListener);
        }
    }
}