我编写了一个管理位置问题的服务。它完全在2.3.3(Galaxy S2)上运行但是当我在ICS(Galaxy s3)上运行应用程序onDestroy方法被调用。两者之间可能存在什么差异?
编辑1: 以下问题。它为何或如何强制销毁服务?
_locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MIN_TIME, MIN_DISTANCE, this);
编辑2(问题)
我无法理解所有这些是如何在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);
}
答案 0 :(得分:0)
它们之间最可能的区别是RAM管理,因为ICS占用更多RAM空间Android进程管理器会破坏某些服务,在您的情况下,您调用的服务就是其中之一。