2016-03-10 2 views
-1

Я использую broadcastreceiver на моем gps, который проверяет, отключил ли пользователь GPS при работе приложения. Если пользователь отключен, тогда отображается диалог с информацией о том, что требуется GPS.Как остановить GPS BroadcastReceiver

Это мой пример в манифесте:

<receiver android:name=".BroadCastGPS"> 
     <intent-filter> 
      <action android:name="android.location.PROVIDERS_CHANGED" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </receiver> 

Это мой BroadCastGPS класс:

public class BroadCastGPS extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 

     if(intent.getAction().matches("android.location.PROVIDERS_CHANGED")) { 

      LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); 

      if(!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { 

       if(!gpsStatus.GPS) { 

        Intent pushintent = new Intent(context, gpsStatus.class); 
        pushintent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        context.startActivity(pushintent); 

       } 

      } else { 

       if(gpsStatus.GPS) { 

        Intent pushintent = new Intent(context, Online.class); 
        pushintent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); 
        context.startActivity(pushintent); 

       } 

      } 
     } 

    } 
} 

Моя проблема заключается в том, что, когда пользователь закрыл это приложение, через несколько секунд показывает диалоговое окно с информацией , что GPS требуется. Как остановить трансляцию перед закрытием приложения? Я пытаюсь использовать System.exit (0), убить процесс, но он не работает.

Этот пример вызывается, когда приложение близко:

PackageManager pm = mContext.getPackageManager(); 
ComponentName compName = 
     new ComponentName(mContext, 
       BroadCastGPS.class); 
pm.setComponentEnabledSetting(
     compName, 
     PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 
     PackageManager.DONT_KILL_APP); 

ответ

1

Никогда не пытайтесь силой закрыть вам приложение. Android обрабатывает это. Если вы хотите отключить свое использование setComponentEnabledSetting

+0

Я обновил свой вопрос. Когда я только начинаю, все отлично. Моя трансляция работает. Но когда я закрываю приложение, и я запускаю второй раз, тогда трансляция не работает. – SeaDog

0

Просто зарегистрируйте трансляцию, когда пользователь отключает GPS.

unregisterReceiver(YOUR_BROADCAST);