问题描述
List<PhoneGis> list = dbService.findAll();if (list.size() != 0) {//简介写法mTextView.setText("发送开始...");progressdialog = ProgressDialog.show(BeginInspection.this, "请稍等片刻...", "开始发送据...");// 让ProgressDialog显示progressdialog.show();}PhoneGis p;for (int i = 0; i < list.size(); i++) {p = list.get(i); String content ="userphone=" + p.getUserphone() + "&imei=" + imei + "×tamp=" + p.getTimestamp(); if (i == list.size()-1) { progressdialog.setOnDismissListener(new DialogInterface.OnDismissListener() {@Overridepublic void onDismiss(DialogInterface dialog) {mTextView.setText("发送结束...");Toast.makeText(getApplicationContext(), "发送结束...", Toast.LENGTH_SHORT).show();}}); } if (sendDate(content)) { progressdialog.dismiss();dbService.delete(p.getId());System.out.println("时间====" + p.getTimestamp());}}代码如上 为什么点击按钮 不能显示progressdialog = ProgressDialog.show(BeginInspection.this, "请稍等片刻...", "开始发送据...");这个toast 而是 等循环体结束后才显示 然后在继续显示 结束 如果要想实现 点击按钮 显示toast 开始发送数据 然后循环结束后显示 toast 发送结束 该怎么实现呢??? 问题补充:Rainbow702 写道
解决方案
还是建议你使用 AsyncTask 来实现,你可以从我的博客中的这篇文章中下载实例,非常之简单的http://rainbow702.iteye.com/admin/blogs/1154918
解决方案二:
new Thread(new Runnable({ public void run(){ PhoneGis p;for (int i = 0; i < list.size(); i++) {p = list.get(i); String content ="userphone=" + p.getUserphone() + "&imei=" + imei + "×tamp=" + p.getTimestamp(); if (i == list.size()-1) { progressdialog.setOnDismissListener(new DialogInterface.OnDismissListener() {@Overridepublic void onDismiss(DialogInterface dialog) {mTextView.setText("发送结束...");Toast.makeText(getApplicationContext(), "发送结束...", Toast.LENGTH_SHORT).show();}}); } if (sendDate(content)) { progressdialog.dismiss();dbService.delete(p.getId());System.out.println("时间====" + p.getTimestamp());}} }})).start();
解决方案三:
这种操作推荐你使用 AsyncTask 类来实现,非常方便
解决方案四:
因为你把所有的这几个操作都放在了主线程(即 UI 线程)中执行了,这样当然不行,你需要把另起一个线程来执行你的 循环 操作