開始アクティビティで、AsyncTaskのデータベースにデータを挿入し、完了したら、新しいアクティビティを開始し、そのデータを選択してリストビューに表示しますが、選択したカーソルは空です。新しいアクティビティを挿入して開始するコードは次のとおりです。
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
。
PSselectと*の間の挿入スペースは何もしません。