如何在主要活动中访问PreferenceActivity的onDestroy()?

时间:2012-02-05 19:22:15

标签: java android live-wallpaper

我不想使用:

onSharedPreferenceChanged

因为每次设置出现问题时我的动态壁纸都会重新初始化(使其崩溃,堆栈溢出!)

相反,我想要调用

onDestroy() 

在具有ATM的主要活动期间从设置中进行修改:

 SharedPreferences.OnSharedPreferenceChangeListener

我想这样做,因为它节省了性能和允许我重新初始化我的主要课程。

我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

只要设置更改,就会调用OnSharedPreferenceChangeListenerOnSharedPreferenceChanged()?这实际上是他们在那里的目的,所以当设置改变时,他们的效果会立即被看到。

我不太明白为什么要调用onDestroy()?这只在应用程序停机时调用...所以我猜你可以简单地说:

this.finish(); // <- Will eventually call onPause(), onDestroy()

如果您要重新启动应用程序,为什么不说完活动,并通过以下方式开始新的应用程序:

StartActivity();

因此,您完全使用新数据重新初始化您的活动?

但是我会坚持使用你的OnSharedPreferenceChanged()并尝试查找实际导致错误的内容,而不是抽象出来。

<强> [更新]

MainActivity.java

[...]
public static void DoSomething(){
// Do something in main, from any other?
}
[...]

PreferenceActivity.java

@Override
public void onDestroy(){
super.onDestroy();
MainActivity.DoSomething();
}