ProcessDialog结合Thread处理耗时操作

 很多初入Android开发的网友表示经常遇到ANR这类的UI假死或提示强制关闭的问题,有的网友可能想到通过创建一个Android Service的方式来解决耗时操作的假死,但是Android123还是给大家一个简单实用的方法通过创建一个线程而不是服务的方式来解决耗时操作时的假死或等待。
  在一个名为Android123的Activity中,我们通过一个进度条控件ProgressDialog可以处理很多耗时操作。代码如下

final ProgressDialog dialog = ProgressDialog.show(Android123.this, "标题", "正文", true);  
final Handler handler = new Handler() {  
   public void handleMessage(Message msg) {  
      dialog.dismiss();   //关闭progressdialog
      }  
   };  

Thread cwjThread = new Thread() {    
   public void run() {  

     //这里处理耗时操作,比如文件下载等等。
 
      handler.sendEmptyMessage(0);    //告诉handler
      }  
   };  
cwjThread.start(); 

时间: 2024-10-18 15:10:30

ProcessDialog结合Thread处理耗时操作的相关文章

多线程-java 并发处理耗时操作的问题

问题描述 java 并发处理耗时操作的问题 刚刚写了个测试程序 原本想使用多线程并发处理 来节省时间,结果反而更耗时.请各位指点一下. 主方法: public class MainAction { public static void main(String[] args) { /*new Action1().run(); new Action2().run(); new Action3().run();*/ new Thread(new Action1()).start(); new Thre

thread-android中用线程处理耗时操作后,获得不到数据怎么办

问题描述 android中用线程处理耗时操作后,获得不到数据怎么办 我用Thread处理一个耗时操作,不加的时候还能获得数据,但是慢.加上之后数据都获得不到 解决方案 能说清楚点吗?你做了什么耗时操作,网络请求还是本地处理? 加上之后log显示或者debug跟踪没有数据了吗? 解决方案二: 有可能是你刷新界面的时候不是在主线程刷新 class Task extends Thread{ @Override public void run() { //read data handler.post(n

c# 怎么延时等待 一个耗时操作的返回

问题描述 点击按钮时调用一个耗时函数,会导致界面假死因为这个耗时函数是需要返回参数的,如果调用新进程去执行,怎么接收它的返回.这种情况要怎么处理,谢谢 解决方案 解决方案二:把接收到的返回值先放到一个全局变量里,然后在给线程结束注册个回调事件,线程结束了,主线程就调用这个事件,然后到全局变量里拿数据解决方案三:耗时函数应该另开个线程执行,可以写个委托来处理返回结果,用信号量或者静态变量也行.解决方案四:引用2楼china_ggd的回复: 耗时函数应该另开个线程执行,可以写个委托来处理返回结果,用

ASP.NET中执行耗时操作的解决方案

在ASP.NET中可以利用多线程方式来达到同样的目的. 多线程  代码如下 复制代码 <%@ Page language="c#" Codebehind="WebForm54.aspx.cs" AutoEventWireup="false" Inherits="csdn.WebForm54" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transit

intentservice-Android IntentService 能不能进行耗时操作

问题描述 Android IntentService 能不能进行耗时操作 最近在做课程设计,需要写个程序在后台不断向服务器请求数据,因为百度查到IntentService可以用来处理耗时的操作,于是打算使用IntentService来完成. 在mainactivity创建的时候开启IntentService Intent intent = new Intent(MainActivity.this ListenService.class); intent.putExtra(ListenServic

修改ui-C# click事件 多线程 异步 耗时 操作UI

问题描述 C# click事件 多线程 异步 耗时 操作UI listbox做了个目录(单层),点击一条就在另一个控件加载相应的内容.这个加载过程是耗时操作.所以考虑用异步,在click处理函数里开了子线程.因为需要操作UI,所以在子线程里调用invoke,但是无论使用invoke还是beginInvoke,那个加载内容的函数都是在UI线程上执行.这样就会造成UI线程阻塞.想实现的效果是,一次点击之后马上能响应下一次点击同时把上一次点击的加载线程结束掉而执行当前点击的加载线程.或者在下一次点击的

eventbus-Activity中用EventBus的onEventAsync方法做耗时操作会不会导致内存泄漏?

问题描述 Activity中用EventBus的onEventAsync方法做耗时操作会不会导致内存泄漏? 如主题所述,如果在onEventAsync中做耗时操作,这个时候关闭了Activity会不会导致内存泄漏,如果关闭之后又立即启动该Activity又会是怎么样的? 解决方案 这个没法准确答,若果Activity已经结束,但耗时操作仍然持有Activty的变量啦,控件啦等等,那肯定会出问题.建议,Activity关闭的工作放在onEventAsyn结束之后处理.

android-Activity中开启线程进行耗时操作,怎么在Activity销毁时结束正在进行的线程

问题描述 Activity中开启线程进行耗时操作,怎么在Activity销毁时结束正在进行的线程 如题,在Android开发中,在activity中开启线程去执行耗时操作,有时候任务还没执行完Activity就被关闭了,有没有大神指导怎么在activity关闭的时候也杀死线程!有时候是多个线程使用线程池管理,怎么在activity销毁时关闭线程池里的所有线程!求高手指点迷津! 解决方案 1.线程里必须有办法退出 2.onResume里建立线程 3.onPause里设置线程结束标志结束线程 解决方

加载页面遮挡耗时操作任务页面--第三方开源之AndroidProgressLayout_Android

AndroidProgressLayout实现为界面添加圆形进度条.调用setprogress()方法显示和隐藏进度条 在Android的开发中,往往有这种需求,比如一个耗时的操作,联网获取网络图片.内容,数据库耗时读写等等,在此耗时操作过程中,开发者也许不希望用户再进行其他操作(其他操作可能会引起逻辑混乱),而此时需要给用户一个额外的加载页面遮挡住主逻辑代码的运行,待主页面的耗时操作完成后,自动消失这样加载过度页面,恢复出正常应该显示的页面. 举个实际的例子,如代码使用Android WebV