java - onDestroy 用于使数据持久化并与服务器同步

标签 java android

我在检测应用程序何时完成时遇到了一些问题。我需要在 Destroy 上执行一些操作,例如将参数保存到数据库中并最终连接到服务器。

问题是,如果我将代码放在 onDestroy 中,例如,当方向发生变化时就会调用它。推杆

android:configChanges="orientation|keyboardHidden"

在该 Activity 的 list 中,横向/纵向布局不会交换。并添加

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    setContentView(R.layout.main);
}

更改布局,但按钮和标签未正确获取 onClickListeners 和文本标签。我该如何解决这个问题?谢谢

最佳答案

问题是您的布局项不会再次初始化,因为您在 onCreate() 函数中初始化它们,然后在 中使用新布局来中断它们onConfigurationChanged().

一种选择是将初始化移至从 onCreate()onConfigurationChanged() 调用的新函数。

另一种选择是在布局中使用 android:onclick="" (及相关)属性。

不过我会选择不同的选项。我将允许 Android 管理方向(并调用 onDestroy()),并且在 onDestroy() 中,我将安装一个警报,例如 10 秒(我想是有足够的时间再次调用 onCreate())。在 onCreate() 中我会取消闹钟。当警报响起时,我将执行保存操作。

关于java - onDestroy 用于使数据持久化并与服务器同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7039181/

相关文章:

java - Maven 在构建时找不到我的测试测试类

java - 如何清理tomcat缓存?

android - 通过 AIDL 从远程服务到应用程序的复杂类型

android - 带有 fragment 的 Kotlin

java - 如何仅序列化对象的某些元素?

java - elasticsearch 6 ESIntegTestCase "codebase property already set"

Java - 处理给出 JSON 文档的 Marklogic eval 响应

java - 当 grails .war 文件运行在与构建时不同的 JDK 上时出现 ClassNotFound 异常

java - 自定义适配器中的 setOnItemClickListener

android - Android Studio构建Gradle同步失败