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() {
@Override
public 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 发送结束 该怎么实现呢???
还是建议你使用 AsyncTask 来实现,你可以从我的博客中的这篇文章中下载实例,非常之简单的[url]http://rainbow702.iteye.com/admin/blogs/1154918[/url]
因为你把所有的这几个操作都放在了主线程(即 UI 线程)中执行了,这样当然不行,你需要把另起一个线程来执行你的 循环 操作
这种操作推荐你使用 AsyncTask 类来实现,非常方便
[code="java"]
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() {
@Override
public 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();
[/code]