gpt4 book ai didi

android - Android 支持库中的 fragment : getLastCustomNonConfigurationInstance/onRetainCustomNonConfigurationInstance magic

转载 作者:行者123 更新时间:2023-11-29 18:08:37 25 4
gpt4 key购买 nike

我有一个扩展 FragmentActivity 的简单类。我使用 getLastCustomNonConfigurationInstance/onRetainCustomNonConfigurationInstance 来保存当前状态。

public class MyActivity extends FragmentActivity {

static class Saver {
// ...
}

@Override
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

Saver saver = (Saver) getLastCustomNonConfigurationInstance();
if (saver != null) {
// ...
}
// ...

}

@Override
public Object onRetainCustomNonConfigurationInstance() {
Saver saver = new Saver();
// ...
return saver;
}
}

当我关闭这个 Activity 时,我有时会遇到一个奇怪的异常,例如:

java.lang.ClassCastException: Saver cannot be cast to android.support.v4.app.FragmentActivity$NonConfigurationInstances

at android.support.v4.app.FragmentActivity.getLastCustomNonConfigurationInstance(FragmentActivity.java:576)
...

你怎么看待这个问题?提前致谢!

最佳答案

你需要像这样进行转换:

Object saver = getLastCustomNonConfigurationInstance();
if (saver != null) {
Saver savedObject = (Saver)saver;
}

关于android - Android 支持库中的 fragment : getLastCustomNonConfigurationInstance/onRetainCustomNonConfigurationInstance magic,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12041220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com