getLastNonConfigurationInstance总是返回null
HashMap myMap = (HashMap) getLastNonConfigurationInstance();
myMap始终为空。 getLastNonConfigurationInstance()返回一个对象。我的地图有两个键“符号”和“名称”。getLastNonConfigurationInstance总是返回null
public Object onRetainNonConfigurationInstance()
{
HashMap myMap = new HashMap();
myMap.put("symbol", this.symbol);
final Object data = myMap;
return data;
}
如果getLastNonConfigurationInstance()
返回一个非空的对象,然后(HashMap) getLastNonConfigurationInstance()
要么返回相同的对象(如果该对象是一个HashMap
)或挥动ClassCastException
。
您所描述的情况是不可能的,除非您发现了Java的演员操作符中的一个长期隐藏的错误。提示:你没有。
确认getLastNonConfigurationInstance()
实际上是返回一个非空对象。确认myMap
实际上是空的。如果您使用调试器来检查这些值,请尝试将它们打印到控制台。调试器有时会对你说谎,或者至少会误导你。
我已更新我的代码以显示onRetainNonConfigurationinstance() – 2010-09-04 03:14:08
@Sheehan - 相关性是什么? – 2010-09-04 03:15:41
我不确定它为什么返回null。 – 2010-09-04 03:17:46
你还没告诉我们这种情况发生在什么情况下? onRetainNonConfigurationInstance()在Activity的onDestroy()发生配置更改时调用。
我面临同样的问题。看起来像在除了onCreate()之外的其他任何东西中调用getLastNonConfigurationInstance()都返回null。我把这个语句移到了onCreate()方法中,并且它返回了我期望它返回的结果。
如何杀死你的“最终”行,只是做“返回我的地图”?一个HashMap毕竟是一个对象。 – jlarson 2010-09-04 03:49:31