このコードは、Froyo でエミュレートする場合を除いて、すべて正常に動作するようです。Froyo を実行している実際のデバイスがないため、実際のデバイスでテストすることはできませんが、コミットすると FC になります。try ブロックにもコードがあるので、強制的に閉じるのではなく、例外をキャッチする必要があると思います。
private void getPrefs() {
boolean dockRespond;
boolean carDockRespond;
boolean silenceRinger;
settings = getSharedPreferences(PREFS_NAME, 0);
editor = settings.edit();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
dockRespond = prefs.getBoolean("dockRespond", true);
carDockRespond = prefs.getBoolean("carDockRespond", true);
silenceRinger = prefs.getBoolean("silenceRinger", false);
Intent startDock = new Intent(this, DockService.class);
if(dockRespond)
{
//start dock listener service
startService(startDock);
}
else
{
//stop dock listener service
stopService(startDock);
}
try
{
editor.putBoolean(DOCKRESPONSEGLOBAL, dockRespond);
editor.putBoolean(CARDOCKRESPONSEGLOBAL, carDockRespond);
editor.putBoolean(SILENCERINGER, silenceRinger);
editor.commit();
}
catch (Exception e)
{
Log.d("Exception caught: ", e.getMessage());
}
}
すべての定数 (すべて大文字) は上記の定数領域で定義されており、前に述べたように、コードは Froyo を除くすべての OS バージョンで動作するようです。froyo では、FC は「editor.commit();」にあります。ライン。
助言がありますか?