`
liuweisir
  • 浏览: 43380 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

ProgressDialog设置OnCancelListener监听事件

阅读更多

一直以为让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 ;
    }

这样做是为了让线程停止,不会再执行下面的代码。

分享到:
评论

相关推荐

    自定义progressDialog

    7. **取消监听**:如果支持取消操作,可以添加`OnCancelListener`来监听用户取消操作,并相应地停止后台任务。 8. **动画效果**:还可以添加动画效果,如旋转的菊花加载图标,或者平滑滚动的进度条。这可以通过修改...

    Android ProgressDialog使用总结

    5. **方式五**:添加`OnCancelListener`监听器,用于处理ProgressDialog被取消时的逻辑。 ```java ProgressDialog dialog5 = ProgressDialog.show(this, "提示", "正在登陆中", true, true, cancelListener); ```...

    android中ProgressDialog与ProgressBar的使用详解

    同时,可以通过设置OnCancelListener来监听取消事件并执行相应的操作,例如关闭对话框或停止后台任务。 相比之下,ProgressBar则更为灵活,它可以在布局文件中定义,且不会阻止用户与界面的其他部分交互。...

    应用源码之ProgressDialogSample.zip

    6. **监听取消事件**:ProgressDialog还提供了监听用户点击取消按钮的机制,通过`setOnCancelListener()`方法注册一个监听器。 ```java progressDialog.setOnCancelListener(new DialogInterface.OnCancelListener...

    Android中ProgressDialog的dismiss()与cancel()方法的区别

    执行`dialog.cancel()`不仅会像`dismiss()`一样移除对话框,更重要的是,如果已经注册了`DialogInterface.OnCancelListener`,它还会触发这个监听器。`OnCancelListener`是Android提供的一个接口,允许开发者在用户...

    安卓Android源码——进度条对话框Demo.rar

    如果允许用户取消操作,可以设置`setCancelable(true)`,并监听`onCancel()`事件: ```java progressDialog.setCancelable(true); progressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() ...

    Android 自定义ProgressDialog进度条对话框用法详解

    7. `setCancelListener(DialogInterface.OnCancelListener listener)`:当用户取消对话框时,调用此监听器的方法。 8. `setButton(int whichButton, String text, DialogInterface.OnClickListener listener)`:可以...

    android dialog

    如果需要在Dialog关闭时执行某些操作,可以设置`OnCancelListener`和`OnDismissListener`。 6. **ProgressDialog的使用** ProgressDialog通常用于展示加载进度,有两种模式:indeterminate(不确定进度)和...

    Android代码-Dialog

    同时,可以设置`OnCancelListener`和`OnDismissListener`来监听Dialog的关闭事件。 8. **使用DialogFragment** 自Android 3.0 (API 11)开始,推荐使用`DialogFragment`替代直接创建Dialog。`DialogFragment`是...

    Android 对话框基本应用详细教程

    2. **回调事件**: `OnCancelListener`和`OnDismissListener`可以监听对话框被取消或关闭的事件。 五、ProgressDialog的使用 1. **显示进度**: `setMessage()`设置显示的文字,`setIndeterminate()`控制是否显示不...

    所有Dialog对话框.zip

    - `OnCancelListener` 和 `OnDismissListener`:监听Dialog的取消和关闭事件。 6. **对话框的使用场景**: - 提示信息:简单地告知用户一些信息,不需要用户交互。 - 确认操作:在用户进行删除、退出等可能有...

    DialogDemo

    可以通过设置`OnClickListener`来监听Dialog上的按钮点击事件,或者在`AlertDialog.Builder`中设置`setPositiveButton()`、`setNegativeButton()`和`setNeutralButton()`的点击回调。 10. **DialogFragment的使用...

    自定义Diualog对话框

    public MyProgressDialog(Context context, boolean cancelable, OnCancelListener cancelListener) { super(context, cancelable, cancelListener); this.context = context; } public MyProgressDialog...

    android DialogsDemo

    `DialogInterface.OnClickListener`和`DialogInterface.OnCancelListener`是常用的接口,分别用于处理按钮点击和Dialog取消事件。 4. **显示和关闭Dialog**:调用`show()`方法可显示Dialog,而`dismiss()`方法则...

    MyDialog.zip

    - 也可以监听Dialog的取消事件,通过重写`DialogFragment.onDismiss()`方法。 6. **Dialog的显示和关闭**: - 显示Dialog:调用`Dialog.show()`方法,需要确保在主线程中执行。 - 关闭Dialog:调用`Dialog....

    android 自定义dialog

    此外,还可以通过设置OnDismissListener或OnCancelListener来处理Dialog关闭时的逻辑。 总的来说,自定义Dialog是Android开发中一个非常实用的技巧,它允许开发者创建高度定制化的用户体验。通过理解Dialog的基础...

    常见Dialog

    除了上述基本用法,还可以通过监听器处理用户交互,如`OnClickListener`、`OnCancelListener`等。同时,可以控制`Dialog`的显示位置、大小、背景透明度等,以满足各种设计需求。 总之,`Dialog`在Android应用中扮演...

    android编程实现对话框的封装实例

    如果传入了`OnCancelListener`,还会为对话框设置取消监听器。 接着是`showProgressDialog`方法,这个方法用于显示进度对话框,通常在执行耗时操作时使用,以告知用户程序正在运行。它接收一条消息(msg)和一个可...

    安卓弹出框各种样式

    当执行耗时操作时,可以使用`ProgressDialog`或`AlertDialog`的`setProgress()`方法显示进度条: ```java AlertDialog dialog = builder.create(); dialog.setProgress(50); // 设置进度值 dialog.show(); ```...

Global site tag (gtag.js) - Google Analytics