У меня странная ситуация, которую я вижу.
Я читаю некоторую информацию из базы данных, затем поднимаю диалог:
ПСЕВДО
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.
Итак, вопрос в том, почему и как это предотвратить? Я добавил несколько проверок нулевого указателя, чтобы предотвратить сбои, но это все еще далеко от идеала.
ОБНОВЛЕНИЕ: На моих устройствах, по крайней мере, когда я поворачиваю экран, активность перезапускается, и диалоговое окно исчезает - может ли это быть на некоторых диалоговых окнах остается ???