getLastNonConfigurationInstance始终返回null

She*_*lam 4 java android object hashmap data-structures

HashMap myMap = (HashMap) getLastNonConfigurationInstance();
Run Code Online (Sandbox Code Playgroud)

myMap始终为null.getLastNonConfigurationInstance()返回一个对象.我的地图有两个键"符号"和"名称".

public Object onRetainNonConfigurationInstance()
    {
        HashMap myMap = new HashMap();
        myMap.put("symbol", this.symbol);
        final Object data = myMap;
        return data;
    }
Run Code Online (Sandbox Code Playgroud)

小智 13

我遇到了同样的问题.看起来在onCreate()之外的任何东西中调用getLastNonConfigurationInstance()都会返回null.我将语句移动到onCreate()方法并且瞧..它返回了我期望它返回的内容.


Mic*_*tta 5

如果getLastNonConfigurationInstance()返回一个非null对象,那么(HashMap) getLastNonConfigurationInstance()将返回相同的对象(如果该对象是a HashMap),或者抛出一个ClassCastException.

您描述的情况是不可能的,除非您在Java的强制转换操作符中发现了一个长期隐藏的错误.提示:你没有.

验证getLastNonConfigurationInstance()实际上是否返回了非null对象.验证它myMap实际上是null.如果您使用调试器来检查这些值,请尝试将它们打印到控制台.调试器有时会欺骗你,或者至少误导你.