作者jun11108 (jun)
看板AndroidDev
标题[问题] 网路传输时的问题
时间Mon Apr 11 14:44:41 2011
开发层: (应用/框架/库/核心) 应用
问题:
请教板上高手们一个ProgressDialog的问题,
我现在的程式是需要拍一张图然後上传至网路(socket),
但因为上传的时间很长,
所以在等候时我写了ProgressDialog来请使用者稍後,
部分程式如下:
case UPLOAD_ID:
Log.e(TAG, "select upload");
// 查询对话框 ,待修改
progressDialog = ProgressDialog.show(this,
"请稍候…","影像传输中");
//onProgressDialog = true;
try{
Log.e(TAG, "socket");
mySocket();
}
catch (Exception e)
{
// show if socket fail
Toast.makeText(this, "上传失败.",
Toast.LENGTH_LONG).show();
}
问题发生了,
他并不会在传输开始的时show出请稍候的ProgressDialog,
而是在传完资料後才闪一下请稍候的画面,
想请教各位高手这是什麽情况呢?
另外请教一个问题,
就是在传输时如果碰触到萤幕的话,
就会出现程式强制关闭的对话框,
如果选择等候的话他还是会继续执行,
请问有没有什麽好建议可以解决这些问题呢?
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 211.79.59.62
1F:推 transwrap:代表你上传的时候应该没有另外开一个thread做上传 04/11 14:54
2F:→ transwrap:而是直接用了UI thread做上传 所以程式会没有反应 04/11 14:54
3F:→ transwrap:请把上传的动作放到另外一个class extends Thread 04/11 14:55
4F:→ transwrap:然後在ui里面start这个thread 再show等待对话框 04/11 14:56
5F:→ transwrap:等到upload完 再用handler传讯息回ui thread结束对话框 04/11 14:57
6F:→ transwrap:如果没有thread的概念建议先去看看书或网站介绍 04/11 14:58
7F:→ transwrap:写这种要等的东西一定要有thread的概念 04/11 14:59
8F:→ transwrap:简单来说你的问题就是你让跟人互动的thread忙着上传 04/11 15:01
9F:→ transwrap:没空理使用者的动作 也没空开对话框 04/11 15:01
10F:→ jun11108:谢谢t大,真的是该好好找一本书来研读一下! 谢谢您^^ 04/11 15:02
11F:→ transwrap:所以你必须要开第二个thread让它跟ui thread同时跑 04/11 15:02
12F:→ transwrap:这样它才有空让对话框显示出来 跟对触碰有反应 04/11 15:03
13F:→ jun11108:原来如此! 那我知道问题所在了~真的谢谢您! 04/11 15:06