2012-03-12 3 views
1

У меня есть 2 мероприятия A-> B. A - это родительская активность, а B - «настройки». В B пользователь делает некоторые варианты, которые обновляют базу данных приложения. A должен прочитать базу данных для установки некоторых текстовых просмотров в соответствии с этим.Android - база данных обновлений для детей onDestroy и родительских читает onResume

То, что я думал, будет работать следующим образом: В B пользователь устанавливает свой выбор (используя некоторые кнопки переключения), а функция onDestroy - состояние кнопок читается, а db обновляется (у меня нет «отправить изменения» кнопка ", поэтому я использую onDestroy). Затем в функции onResume из A я вызываю процедуру, которая читает db и обновляет поля.

Проблема в том, что изменения не видны в A. Но если я снова вернусь к B и вернусь к A без каких-либо новых изменений, изменения будут видны и правильны.

Так что же не так и должно быть сделано? Я могу использовать фиктивную активность между A и B, и это может сработать, но я не знаю, хорошая ли это реализация. Спасибо заранее!

ответ

1

Попробуйте вместо onDestroy() способ, например onPause() или onStop() способ. И посмотрите на это:

enter image description here

+0

спасибо! – george

+1

, так как действие не может быть убито во время его запуска, и должно пройти через atleast onPause состояние, все сохранение данных должно быть включено в onPause –

1

Если вы не хотите, чтобы реализовать кнопку отправки, вы бы лучше обновить свою базу данных в onPause() вместо onDestroy().

@Override 
    protected void onPause() { 
     super.onPause();  
      if (isFinishing()) { 
       //Database updates here 
      } 
     } 
    } 
+0

ОК, вы правы! Большое спасибо! – george

 Смежные вопросы

  • Нет связанных вопросов^_^