我不想使用:
onSharedPreferenceChanged
因为我的Live Wallpaper每次发生设置时都会重新初始化(使其崩溃、堆栈溢出!)
相反,我想打电话给
onDestroy()
根据具有ATM:的主要活动期间的设置进行计算
SharedPreferences.OnSharedPreferenceChangeListener
我想这样做是因为它节省了性能&允许我重新初始化我的主类。
我该怎么做?
假设OnSharedPreferenceChangeListener
和OnSharedPreferenceChanged()
在设置更改时被调用?这就是他们在那里的目的,所以当设置发生变化时,他们的效果会立即显现出来。
我不太明白你为什么要调用onDestroy()?这只在应用程序出现故障时调用。。。所以我想你可以简单地说:
this.finish(); // <- Will eventually call onPause(), onDestroy()
如果你想重新启动你的应用程序,为什么不说完成你的活动,并通过启动一个新的应用程序呢
StartActivity();
因此,您是在用新数据完全重新初始化您的活动吗?
然而,我会坚持使用您的OnSharedPreferenceChanged()
,并尝试找出真正导致错误的原因,而不是抽象过程。
[更新]
主要活动.java
[...]
public static void DoSomething(){
// Do something in main, from any other?
}
[...]
首选活动.java
@Override
public void onDestroy(){
super.onDestroy();
MainActivity.DoSomething();
}