设置:FirstActivity打开SecondActivity,SecondActivity要求用户选择图像,给它们标题;当用户完成后,单击“保存”按钮,调用方法saveToDatabase调用批量插入。希望用户在单击“保存”按钮后返回FirstActivity。
这是当前的设置:
private void saveToDatabase() {
int arraySize = beanList.size();
ContentValues[] valuesArray = new ContentValues[arraySize];
ContentValues values;
String imageuri;
String title;
int counter = 0;
for(Bean b : beanList){
imageuri = b.getImageUri();
title = b.getImageTitle();
values = new ContentValues();
values.put(CollectionsTable.COL_NAME, nameOfCollection);
values.put(CollectionsTable.COL_IMAGEURI, imageuri);
values.put(CollectionsTable.COL_TITLE, title);
values.put(CollectionsTable.COL_SEQ, counter +1);
valuesArray[counter] = values;
counter++;
}
getContentResolver().bulkInsert(CollectionsContentProvider.CONTENT_URI, valuesArray);
// Does this squash the db/provider call? This is working now but will it always?
finish();
}
......它正在发挥作用但我仍然担心它可能不会一直有效。所以我的问题是,在finish()
问题之后直接致电getContentResolver().bulk...
?有没有更好的方法来处理我正在尝试做的事情(保存到数据库并将用户返回到以前的活动以响应一个用户事件)?谢谢。 PS:这是我的第一个应用程序,如果你看到应该处理得更好的代码,我也会听到。
答案 0 :(得分:0)
所以主要的问题是:在调用Provider方法之后直接调用finish()
是否可以。并且考虑到makovkastar的评论,解决方案不是在Provider方法调用之后直接调用finish()
,而是执行类似的操作:
private void saveToDatabase() {
int arraySize = beanList.size();
final ContentValues[] valuesArray = new ContentValues[arraySize];
ContentValues values;
String imageuri;
String title;
int counter = 0;
for(Bean b : beanList){
imageuri = b.getImageUri();
title = b.getImageTitle();
values = new ContentValues();
values.put(CollectionsTable.COL_NAME, nameOfCollection);
values.put(CollectionsTable.COL_IMAGEURI, imageuri);
values.put(CollectionsTable.COL_TITLE, title);
values.put(CollectionsTable.COL_SEQ, counter +1);
valuesArray[counter] = values;
counter++;
}
AsyncTask<Void, Void, Void> task = new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... arg0) {
getContentResolver().bulkInsert(CollectionsContentProvider.CONTENT_URI, valuesArray);
return null;
}
@Override
protected void onPostExecute(Void result) {
finish();
}
};
task.execute();
}
这是有效的,现在我以前的恐惧已经消除了。谢谢,makovkastar。