在我的应用程序中,有一个 SqlLite 数据库,其中包含一个包含消息列表的表。每条消息都有一个“发件人”和一个“正文”。
我有一个包含 a 的活动,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
反映此更改(显示新添加的消息)
我考虑过在将消息添加到数据库时使服务触发广播。然后,当 Activity 接收到这个广播时,再次执行查询。但是,我担心fetchAllMessages()
当我知道只添加了 1 条消息时效率低下,特别是因为可能经常添加消息