java - 如何在主 Activity 中访问 PreferenceActivity 的 onDestroy() ?

标签 java android live-wallpaper

我不想使用:

onSharedPreferenceChanged

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

相反,我想调用

onDestroy() 

根据有 ATM 的主要 Activity 期间的设置得出:

 SharedPreferences.OnSharedPreferenceChangeListener

我想这样做,因为它可以节省性能并允许我重新初始化我的主类。

我该如何解决这个问题?

最佳答案

只要设置更改,就应该调用 OnSharedPreferenceChangeListenerOnSharedPreferenceChanged() 吗?这实际上就是他们存在的目的,因此当设置更改时,他们的效果会立即看到。

我不太明白你为什么要调用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/

相关文章:

android - 如何在 Mac 上调试 SIGSEGV?

Android动画壁纸来自图像

android - 墙纸因错误而崩溃 - queueBuffer : error queuing buffer to SurfaceTexture

android - 视差动态壁纸滚动太远

java - NotSerializableException for java.util.Optional with Jackson

android模拟器过度登录

java - 从java中的线程调用静态函数?

java - 性能 - 从计时器线程更新 UI,而不阻塞 UI 线程

Java - 8 : dynamic method arguments

java - Facet 字段值使用字谜多次返回相同的值