子线程查询数据库 父线程更新UI,dialog在主线程内

使用progressdialog交互

查询数据库,在子线程内

主线程更新UI界面

final Runnable mUpdateUI = new Runnable() {
	public void run() {
	//update UI
}
};
//check wifi
		Boolean isNetwork = Utility
				.isNetworkAvailable(InventoryCountConfirm_ListActivity.this);
		showWaitDialogNoTitle(getString(R.string.MSG_I_0004));
		if (isNetwork) {
				new Thread(new Runnable() {
					public void run() {
						//acess sql get data						
uiHandler.post(mUpdateUI); // call updateUI thread
						closeCurrentDialog();
					}
				}).start();
		} else {
//do sth.		}

//showdialog

public AlertDialog showWaitDialogNoTitle(String msg) {
		if (currentDialog != null && currentDialog.isShowing()) {
			currentDialog.cancel();
		}
		currentDialog = new ProgressDialog(this);
		currentDialog.setMessage(msg);
		((ProgressDialog) currentDialog)
				.setProgressStyle(ProgressDialog.STYLE_SPINNER);
		currentDialog.setCancelable(false);
		currentDialog.show();
		return currentDialog;
	}

相关推荐