[英]Fragments in Android support library: getLastCustomNonConfigurationInstance/onRetainCustomNonConfigurationInstance magic
我有一個擴展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)
...
你怎么看待這個問題? 提前致謝!
你需要像這樣做你的演員:
Object saver = getLastCustomNonConfigurationInstance();
if (saver != null) {
Saver savedObject = (Saver)saver;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.