【发布时间】:2011-01-14 15:37:16
【问题描述】:
我遇到了一个奇怪的情况。
我正在从数据库中读取一些信息,然后弹出一个对话框: 伪
val = DBaseManager.readValue(i,POS_ONE);
if(val == 1)
{
Dialog_Test myDialog = new
Dialog_Test (myContext,"",new addListener(),DBaseManager);
myDialog.show();
}
如您所见,我将 DBaseManager 传递到对话框中,因此它也可以使用它。
然后在那里我像这样使用它:
DBaseManager.readValue(k,POS_TWO);
等等
现在这在 99% 的情况下都有效,但是我有一些崩溃日志指向对话框中的这些行,但出现空指针异常。
对我来说,这表明在某些设备上,我的 onPause 或 OnDestory 方法在主要活动中被调用,该活动关闭并使 DBaseManager 为空。这些是 1.6、2.2 和 2.3 设备。
所以问题是为什么,以及如何预防?我添加了一些空指针检查以防止崩溃,但它仍然远非理想。
更新:在我的设备上,至少当我旋转屏幕时,活动会重新启动并且对话框消失 - 是否可能在某些对话框上仍然存在???
【问题讨论】:
标签: android dialog android-activity