0

私が書いた場所の問題を管理するサービスがあります。2.3.3 (Galaxy S2) で完全に動作しますが、ICS (Galaxy s3) でアプリを実行すると、onDestroy メソッドが呼び出されます。両方の違いは何ですか?

編集1: 以下の行の問題。なぜ、またはどのようにサービスを強制的に破棄するのですか?

_locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MIN_TIME, MIN_DISTANCE, this);

編集2(問題)

  1. GPS が無効になっている場合、GPS はオンにならず、onDestroy に進みます
  2. 選択したプロバイダーがネットワーク プロバイダーである場合は、再度 onDestroy に進みます。

これらすべてが 2.3.3 でどのように正しく動作するのかがわかりません。

   private void turnGPSOn(){
        String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);

        if(!provider.contains("gps")){ //if gps is disabled
            final Intent poke = new Intent();
            poke.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider");
            poke.addCategory(Intent.CATEGORY_ALTERNATIVE);
            poke.setData(Uri.parse("3"));
            sendBroadcast(poke);
        }
    }

getBestProvider()

private String getBestProvider(){
    //gps açıksa fine'a göre ara, değilse dandik providerı dön.
    return isGpsEnabled()==true ? _locationManager.getBestProvider(getFineCriteria(), false) : _locationManager.getBestProvider(getCoarseCriteria(), false);
}
4

1 に答える 1

0

それらの間の最も可能性のある違いは RAM 管理です。ICS はより多くの RAM スペースを占有します Android プロセス マネージャーはいくつかのサービスを破壊します。

于 2012-11-15T09:36:23.153 に答える