Android SQLite在提交更新语句之前读取数据

时间:2014-09-19 14:57:34

标签: android sqlite

我正在创建一个与sqlite一起使用的简单Android应用程序。在一个活动中,它向用户显示数据,在另一个活动中,用户可以操纵数据 现在,问题是当用户在第二个活动中更改数据并按下后退按钮时,将调用onResume()方法并从数据库中读取数据,但在更新完成之前因此显示错误的数据(更改前的数据) 。
如果用户重新启动程序,它将显示正确的数据。我想也许它有同步问题。

更新语句在第二个活动的onDestroy()方法中执行,并立即在第一个活动的onResume()中选择语句。

如何解决此问题并始终在第一项活动中看到正确的数据? 如果有必要,我可以附加代码。 提前谢谢。

2 个答案:

答案 0 :(得分:0)

您必须实现对更改数据加载时调用的第一个活动的回调。在回调方法中,活动将更新显示的数据。随和。

请注意,如果您不知道如何操作:我不会提供代码示例。这不是Stack Overflow社区的工作。只需谷歌并尝试一下。

答案 1 :(得分:0)

从doc:

看一下
  

活动A开始活动B:

Activity A's onPause() method executes.
Activity B's onCreate(), onStart(), and onResume() methods execute in sequence. (Activity B now has user focus.)
     

然后,如果活动A在屏幕上不再可见,则其onStop()   方法执行。这个可预测的生命周期回调序列   允许您管理来自一个活动的信息转换   到另一个。例如,如果必须在写入数据库时​​写入   第一个活动停止,以便以下活动可以读取它   你应该在onPause()期间而不是在期间写入数据库   的onStop()。

所以活动A onDestroy仍未被调用,因此您错过了正确的数据,您应该怎么做?在onPause()中更新或为button设置监听器并在该监听器中进行更新。

http://developer.android.com/guide/components/activities.html