在我的應用程序中,我有一個dbAdapter
,其中一個功能對多行進行批量更新。此前,該數據總體勉強拍了幾毫秒,並從主線程,我只是叫:Android:從dbAdapter更新UI TextView
dbAdapter.BatchUpdate();
不過,現在上面的函數中的數據人口占多少秒。我現在已經顯示indeterminate progressBar
,並通過Runnable
執行上述操作。
如何將其轉換爲horizontal progressBar
,我可以根據要處理的行數和當前行號設置進度?由於函數以BEGIN和COMMIT開始和結束,因此我可能無法簡單地拉取行數並逐行處理(從UI中)。
編輯
下面的代碼的摘錄...
/* In Main Activity */
mlBinding.btnBatchUpdate.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Runnable batch = new Runnable() {
@Override
public void run() {
dbAdapter = new DBAdapter(this);
dbAdapter.batchUpdate();
}
};
batch.run();
}
}
/* In DBAdapter Class */
class DBAdapter {
private DBHelper dbHelper;
private SQLiteDatabase dbW;
private SQLiteDatabase dbR;
public boolean batchUpdate() {
try {
dbW.execSQL("BEGIN;");
String[] itemsToProcess = getItemsToProcess();
for (int i=0; i<itemsToProcess.length; i++) {
//Do some really long stuff here
}
dbW.execSQL("COMMIT;");
} catch (Exception e) {}
}
}
提供你的代碼。 – Ibrahim