子线程查询数据库 父线程更新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.		}


//show dialog
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;
	}

猜你喜欢

转载自44289533.iteye.com/blog/1705079