我不想使用:
onSharedPreferenceChanged
因为每次设置发生问题(导致崩溃、堆栈溢出!)时,我的动态壁纸都会重新初始化
相反,我想调用
onDestroy()
根据有 ATM 的主要 Activity 期间的设置得出:
SharedPreferences.OnSharedPreferenceChangeListener
我想这样做,因为它可以节省性能并允许我重新初始化我的主类。
我该如何解决这个问题?
最佳答案
只要设置更改,就应该调用 OnSharedPreferenceChangeListener
和 OnSharedPreferenceChanged()
吗?这实际上就是他们存在的目的,因此当设置更改时,他们的效果会立即看到。
我不太明白你为什么要调用onDestroy()?仅当应用程序出现故障时才会调用...所以我想您可以简单地说:
this.finish(); // <- Will eventually call onPause(), onDestroy()
如果您想要重新启动应用程序,为什么不说完成您的 Activity ,然后通过以下方式开始新的 Activity :
StartActivity();
因此,您要使用新数据完全重新初始化您的 Activity ?
但是,我会坚持使用您的 OnSharedPreferenceChanged()
并尝试查找实际导致错误的原因,而不是抽象过程。
[更新]
MainActivity.java
[...]
public static void DoSomething(){
// Do something in main, from any other?
}
[...]
PreferenceActivity.java
@Override
public void onDestroy(){
super.onDestroy();
MainActivity.DoSomething();
}
关于java - 如何在主 Activity 中访问 PreferenceActivity 的 onDestroy() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9152201/