我有一个扩展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;
}
}当我关闭此活动时,有时会出现奇怪的异常,例如:
java.lang.ClassCastException: Saver cannot be cast to android.support.v4.app.FragmentActivity$NonConfigurationInstances
at android.support.v4.app.FragmentActivity.getLastCustomNonConfigurationInstance(FragmentActivity.java:576)
...你对这个问题怎么看?提前感谢!
发布于 2012-10-19 17:27:23
你需要像这样做你的演员阵容:
Object saver = getLastCustomNonConfigurationInstance();
if (saver != null) {
Saver savedObject = (Saver)saver;
} https://stackoverflow.com/questions/12041220
复制相似问题