①在子线程中直接ProgressDialog progressDialog = ProgressDialog.show(context, "","正在访问网络,请稍...",false,true);为什么可以在主UI中显示,我并没有用Handler。
②为什么子线程中可以控制ProgressDialog的显示,也没有用handler
②为什么子线程中可以控制ProgressDialog的显示,也没有用handler
解决方案 »
- ViewGroup的removeView(View)方法没有效果,烈日下站等!!!!!
- 各位大神请教一个关于Broadcast的问题,急求答案!!!!!
- 安卓sdk安装失败?
- android2.3 如何进行串口开发 求大神
- 如何控制view的隐藏和显示
- 监听ScrollView的fling 滑动停止事件
- Android软键盘问题
- 调试linphone遇到Fatal signal 11
- [求助]零基础怎么学习安卓?
- 在Android Studio的XML文件中添加控件(如Button)时,会自动生成layout_width和layout_height,可不可以自动生成id呢
- android imageview缩放问题
- ListView动态改变Item的数据与UI。出现黑一下屏幕
new thread(){
public void run(
//
)
}
final Handler handler) {
new Thread() {
ProgressDialog progressDialog = ProgressDialog.show(context, "",
"正在访问网络,请稍后...", false, true);
public void run() {
String string = null;
HttpClient httpClient = new DefaultHttpClient();
httpClient.getParams().setIntParameter(
HttpConnectionParams.CONNECTION_TIMEOUT, 1000 * 10);// 连接超时
httpClient.getParams().setIntParameter(
HttpConnectionParams.SO_TIMEOUT, 1000 * 10);// socket超时
HttpGet httpGet = new HttpGet(url);
try {
HttpResponse httpResponse = httpClient.execute(httpGet);
if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
string = EntityUtils.toString(httpResponse.getEntity(),
"utf-8");
} else {
toast(context, "服务端响应错误,错误码:"
+ httpResponse.getStatusLine().getStatusCode(),
handler);
}
} catch (Exception e) {
toast(context, "网络错误", handler);
e.printStackTrace();
}
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
}
if (handler != null) {
handler.sendMessage(handler.obtainMessage(10, string));
}
}
}.start();
}
mUiThread = Thread.currentThread();
ProgressDialog在子线程是显示不了的这个应该没错
但是子线程为什么可以控制主线程中ProgressDialog的显示呢