在启动活动中,我将数据插入到 AsyncTask 中的数据库中,当它完成时,我启动新活动并选择该数据以在列表视图中显示它,但所选光标为空。这是插入和启动新Activity的代码:
dbOperations= DatabaseManager.getInstance(AuthorizationMainActivity.this);
dbOperations.open();
LinkedHashMap<String, Object> parametersInbox = new LinkedHashMap<String, Object>();
parametersInbox.put("_id", result.get("msg_id"));
parametersInbox.put("limit", Integer.valueOf(1000).toString());
parametersInbox.put("type", Integer.valueOf(1).toString());
requestInbox(serverParametersInbox);//This method send request to the server and insert response into the database.
try {
databaseTask.get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
Intent nextView = new Intent(context_, InboxActivity.class);
startActivity(nextView);
这是InboxActivity
onCreate()
:
DatabaseManager db = DatabaseManager.getInstance(this);
db.open();
String selectionQuery = "select * from messages;";
database.rawQuery(selectionQuery, null).getCount(); //Here is 0!
所以数据插入得很好(我可以在查看器中看到它)。但是在下一个活动中我无法检索它。为什么?在开始新的活动之前,我打电话get()
等待AsyncTask
完成。
PS select 和 * 之间的插入空间无效。