簡體   English   中英

Android支持庫中的片段:getLastCustomNonConfigurationInstance / onRetainCustomNonConfigurationInstance magic

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM