一直以为让ProgressDialog消失是监听返回键呢,
public boolean onKeyDown(int keyCode, KeyEvent event) {}
原来不是这样的。
之前开启一个新线程去调用网络json数据,弹出进度ProgressDialog 设置的是setCancelable(false)--即不可按返回键让dialog消失,当程序正常解析json完毕后,才让dialog消失,如果这样网络不够好的话 用户等待时间会过长 按返回不起作用,这样程序就处于死等待的状态,无法操作其他的功能。为了防止这种情况出现,我设置
progressDialog.setCancelable(true);
progressDialog.setOnCancelListener(new OnCancelListener(){
@Override
public void onCancel(DialogInterface arg0) {
thread.interrupt();//用于终止我的线程
}});
然后在线程run()方法里面合适的位置进行线程状态的判断
如:发送请求前后,与解析json数据之后的地方,加入
if(Thread.currentThread().isInterrupted()){
Log.i(TAG,"thread is stop after parse");
return ;
}
这样做是为了让线程停止,不会再执行下面的代码。
分享到:
相关推荐
7. **取消监听**:如果支持取消操作,可以添加`OnCancelListener`来监听用户取消操作,并相应地停止后台任务。 8. **动画效果**:还可以添加动画效果,如旋转的菊花加载图标,或者平滑滚动的进度条。这可以通过修改...
5. **方式五**:添加`OnCancelListener`监听器,用于处理ProgressDialog被取消时的逻辑。 ```java ProgressDialog dialog5 = ProgressDialog.show(this, "提示", "正在登陆中", true, true, cancelListener); ```...
同时,可以通过设置OnCancelListener来监听取消事件并执行相应的操作,例如关闭对话框或停止后台任务。 相比之下,ProgressBar则更为灵活,它可以在布局文件中定义,且不会阻止用户与界面的其他部分交互。...
6. **监听取消事件**:ProgressDialog还提供了监听用户点击取消按钮的机制,通过`setOnCancelListener()`方法注册一个监听器。 ```java progressDialog.setOnCancelListener(new DialogInterface.OnCancelListener...
执行`dialog.cancel()`不仅会像`dismiss()`一样移除对话框,更重要的是,如果已经注册了`DialogInterface.OnCancelListener`,它还会触发这个监听器。`OnCancelListener`是Android提供的一个接口,允许开发者在用户...
如果允许用户取消操作,可以设置`setCancelable(true)`,并监听`onCancel()`事件: ```java progressDialog.setCancelable(true); progressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() ...
7. `setCancelListener(DialogInterface.OnCancelListener listener)`:当用户取消对话框时,调用此监听器的方法。 8. `setButton(int whichButton, String text, DialogInterface.OnClickListener listener)`:可以...
如果需要在Dialog关闭时执行某些操作,可以设置`OnCancelListener`和`OnDismissListener`。 6. **ProgressDialog的使用** ProgressDialog通常用于展示加载进度,有两种模式:indeterminate(不确定进度)和...
同时,可以设置`OnCancelListener`和`OnDismissListener`来监听Dialog的关闭事件。 8. **使用DialogFragment** 自Android 3.0 (API 11)开始,推荐使用`DialogFragment`替代直接创建Dialog。`DialogFragment`是...
2. **回调事件**: `OnCancelListener`和`OnDismissListener`可以监听对话框被取消或关闭的事件。 五、ProgressDialog的使用 1. **显示进度**: `setMessage()`设置显示的文字,`setIndeterminate()`控制是否显示不...
- `OnCancelListener` 和 `OnDismissListener`:监听Dialog的取消和关闭事件。 6. **对话框的使用场景**: - 提示信息:简单地告知用户一些信息,不需要用户交互。 - 确认操作:在用户进行删除、退出等可能有...
可以通过设置`OnClickListener`来监听Dialog上的按钮点击事件,或者在`AlertDialog.Builder`中设置`setPositiveButton()`、`setNegativeButton()`和`setNeutralButton()`的点击回调。 10. **DialogFragment的使用...
public MyProgressDialog(Context context, boolean cancelable, OnCancelListener cancelListener) { super(context, cancelable, cancelListener); this.context = context; } public MyProgressDialog...
`DialogInterface.OnClickListener`和`DialogInterface.OnCancelListener`是常用的接口,分别用于处理按钮点击和Dialog取消事件。 4. **显示和关闭Dialog**:调用`show()`方法可显示Dialog,而`dismiss()`方法则...
- 也可以监听Dialog的取消事件,通过重写`DialogFragment.onDismiss()`方法。 6. **Dialog的显示和关闭**: - 显示Dialog:调用`Dialog.show()`方法,需要确保在主线程中执行。 - 关闭Dialog:调用`Dialog....
此外,还可以通过设置OnDismissListener或OnCancelListener来处理Dialog关闭时的逻辑。 总的来说,自定义Dialog是Android开发中一个非常实用的技巧,它允许开发者创建高度定制化的用户体验。通过理解Dialog的基础...
除了上述基本用法,还可以通过监听器处理用户交互,如`OnClickListener`、`OnCancelListener`等。同时,可以控制`Dialog`的显示位置、大小、背景透明度等,以满足各种设计需求。 总之,`Dialog`在Android应用中扮演...
如果传入了`OnCancelListener`,还会为对话框设置取消监听器。 接着是`showProgressDialog`方法,这个方法用于显示进度对话框,通常在执行耗时操作时使用,以告知用户程序正在运行。它接收一条消息(msg)和一个可...
当执行耗时操作时,可以使用`ProgressDialog`或`AlertDialog`的`setProgress()`方法显示进度条: ```java AlertDialog dialog = builder.create(); dialog.setProgress(50); // 设置进度值 dialog.show(); ```...