make一个simplecursoradapter反映了对数据库的更改

时间:2011-08-22 15:24:21

标签: android listview simplecursoradapter

在我的应用程序中,有一个SqlLite数据库,其中包含一个包含消息列表的表。每封邮件都有一个“发件人”和一个“正文”。

我有一个包含ListView的活动,它只是使用游标和游标适配器显示数据库中的所有消息。以下是相关代码:

    Cursor cursor = mDbAdapter.fetchAllMessages();
    String[] from = { MessageDbAdapter.KEY_SENDER, MessageDbAdapter.KEY_BODY };
    int[] to = { R.id.TextSender , R.id.TextMessage };
    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.messagerow, cursor, from, to);
    mMessageList.setAdapter(adapter);

在我的应用程序中,有一个在后台运行的服务可以随时向数据库插入新消息(用户可能会也可能不会查看列表活动)。

我的问题如下:如果用户正在查看列表活动并且新消息已添加到数据库,我该如何使ListView反映此更改(显示新添加的消息)

我已经考虑过在将消息添加到数据库时使服务触发广播。然后,当活动接收到此广播时,再次执行查询。但是,当我知道只添加了1条消息时,我担心fetchAllMessages()效率低下,特别是因为消息可能经常被添加

0 个答案:

没有答案