我遇到了onDestroy函数的奇怪行为。 我试图通过SharedPreference对象在onDestroy中保存一些参数。这是代码。
protected void onDestroy() {
Log.e(TAG, "onDestroy() - ");
// так же сохраняем статус приложение (закрыто) в shared preperence
// для того чтобы из ресивера пушей можно было узнать статус приложения
try{
Log.e(TAG, "onDestroy() - A");
SharedPreferences.Editor ed = preferences.edit();
Log.e(TAG, "onDestroy() - C");
ed.putString(packageName, statusClosed);
Log.e(TAG, "onDestroy() - D");
ed.commit();
Log.e(TAG, "onDestroy() - E");
//Log.e(TAG, "onDestroy() - Sharedpref save OK. Arg = " + getPackageName() + " Val = " + getString(R.string.core_pushns_status_closed));
} catch (Exception e)
{
Log.e(TAG, "onDestroy() - Sharedpref save error.");
}
Log.e(TAG, "onDestroy2()");
}
当我使用硬件后退按钮关闭应用程序时 - 一切正常。 当我使用菜单按钮功能ed.commit()关闭app时崩溃。 有任何想法吗? 提前谢谢。