这实际上是两个问题:
如果我在我的应用程序中将SQLite作为ContentProvider
公开,它将以异步方式工作?
想象一下,我的数据库中有以下表格:
TableChats
TableChatMessages
我也有一节课
Message
要使用ListViews
并使用这些列表视图,请使用ContentProvider
中的数据,返回的数据必须是光标吗?或者是否可以查询聊天中的所有消息并返回Message
数组。
对不起,我知道这可能是一个愚蠢的问题,但我是Android开发的新手,ContentProvider
和ListViews
的概念以及如何连接它们对我来说还不是很清楚。
答案 0 :(得分:2)
据我所知
content provider
管理对多个应用程序之间共享的中央数据存储库的访问。通常,所有方法都访问UI thread
上的数据工作。如果您想要异步,他们建议使用CursorLoader
。Cursor
获取数据并将其放入Message
对象。样品:
Cursor sampleCursor = getContentResolver().query("Your query");
ArrayList<Message> list;
if(sampleCursor!=null){
while(sampleCursor.moveNext()){
Message item = new Message();
item.sender = sampleCursor.getString(senderColumnIndex);
item.messageBody= sampleCursor.getString(messageBodyColumnIndex);
list.add(item);
}}
//Pass your list to your adapter.
或使用CursorAdapter