根据文档,Android操作系统可以杀死后端堆栈后面的活动.
所以,例如我说有一个应用程序并打开主要活动(让我们称之为活动A).在这个公共活动类中,我声明并初始化一个公共静态变量(让我们称之为"foo").在Activity A的onCreate()方法中,我然后更改"foo"的值.从活动A开始,用户在我的应用程序中启动另一个名为Activity B的活动.在活动B中使用变量"foo".在用户导航到其他应用程序中的某些其他活动后,活动B将暂停.最终,在发生内存不足之后,可以杀死活动A然后活动B. 用户导航回我的应用程序后,它会重新启动(实际上是"重新创建")活动B.
怎么了:
当活动A的onCreate()方法运行时,此时变量"foo"是否具有设置的值?
变量"foo"不存在?
变量"foo"存在,但现在是初始化值,而不是Activity A的onCreate()方法中设置的值?
我找到了一种解决方法,可以在嵌套的PreferenceScreen上实际启用ActionBar主页按钮...但是它不会在我的PreferenceActivity中调用OnOptionsItemSelected.有人知道在嵌套的PreferenceScreen上实际使用主页按钮的方法吗?
这里修改第35篇:
http://code.google.com/p/android/issues/detail?id=4611
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference)
{
super.onPreferenceTreeClick(preferenceScreen, preference);
if (preference!=null)
if (preference instanceof PreferenceScreen)
if (((PreferenceScreen)preference).getDialog()!=null)
((PreferenceScreen)preference).getDialog().getActionBar().setHomeButtonEnabled(true);
return false;
}
Run Code Online (Sandbox Code Playgroud) java android preferenceactivity sharedpreferences android-actionbar