①在子线程中直接ProgressDialog progressDialog = ProgressDialog.show(context, "","正在访问网络,请稍...",false,true);为什么可以在主UI中显示,我并没有用Handler。
②为什么子线程中可以控制ProgressDialog的显示,也没有用handler
②为什么子线程中可以控制ProgressDialog的显示,也没有用handler
解决方案 »
- ActionBar 布局问题求教
- 怎么做一个程序的启动画面,然后立即跳到软件操作界面?
- android 网络下载歌词和mp3文件
- 请懂android的专家帮忙指导一下,谢谢!
- 在activity中让View刷新,怎么做?
- activity与activity之间跳转,finish方法可有可无?
- 跪求如何将View和控件联合起来使用
- Android模拟器不能启动PANIC: Could not....
- Android adb 过一会就会卡死是什么原因
- Android Studio 还是API 要入门的选择?
- 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的显示呢