手机
当前位置:查字典教程网 >编程开发 >安卓软件开发 >Android中断线程的处理方法
Android中断线程的处理方法
摘要:本文实例讲述了Android中断线程的处理方法。分享给大家供大家参考。具体方法如下:我现在对一个用户注册的功能1.用ProgressDial...

本文实例讲述了Android中断线程的处理方法。分享给大家供大家参考。具体方法如下:

我现在对一个用户注册的功能

1.用ProgressDialog将当前页面设成不可操作(保留返回键 退出ProgressDialog)

2.用一个线程clientThread执行数据的提交和返回

问题:考虑到ProgressDialog运行过程中,返回键的操作,应该终止clientThread的运行。

代码如下,感兴趣的朋友可以参考运行一下,以便得出更好的解决办法。

复制代码 代码如下:

btn_register.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

if(doBeforeSubmit()){

try {

Log.v(TAG, "clientThread prepare01。。。:"+Thread.interrupted());

clienThread=new Thread(){

public void run() {

try {

Log.v(TAG, "clientThread prepare02。。。:"+Thread.interrupted());

while (!Thread.interrupted()) {

Log.v(TAG, "clientThread starting。。。");

MeApiCall meApiCall=new MeApiCallImpl();

Me me=new Me();

me.setMeEmail(et_register_account.getText().toString().trim());

me.setMePwd(et_register_pwd.getText().toString().trim());

me.setMeName(et_register_nickName.getText().toString().trim());

Log.v(TAG, "clientThread data loaded。。。");

meApiCall.register(me);

Log.v(TAG, "clientThread callback。。。");

handler.sendEmptyMessage(AppConfig.Register.SUCCESS_MSG);

clienThread.interrupt(); //中断线程

}

} catch (InterruptedException e) {

// TODO: handle exception

Log.v(TAG, "clientThread is interrupt");

}catch (Exception e) {

// TODO Auto-generated catch block

Log.v(TAG, "exception: "+e.getMessage());

handler.sendEmptyMessage(AppConfig.Register.FAIL_OTHER_MSG);

e.printStackTrace();

}

};

};

Log.v(TAG, "progressDialog prepare01。。。:");

progressDialog=ProgressDialog.show(Register.this,

"",

"正在获取....",

true,

true,

new DialogInterface.OnCancelListener() {

@Override

public void onCancel(DialogInterface dialog) {

// TODO Auto-generated method stub

try {

clienThread.interrupt();

Log.v(TAG, "interrupt is success!");

} catch (Exception e) {

// TODO Auto-generated catch block

Log.v(TAG, "interrupt is fail!");

e.printStackTrace();

}

}

}

);

Log.v(TAG, "clientThread prepareing_end。。。");

clienThread.start();

//Log.v(TAG, "clientThread prepareing_end。。。");

} catch (Exception e) {

// TODO Auto-generated catch block

Log.v(TAG, e.getMessage()+" 00");

e.printStackTrace();

}

}

}

});

希望本文所述对大家的Android程序设计有所帮助。

【Android中断线程的处理方法】相关文章:

Android动态添加View的问题解决方法

Android中使用Gson解析JSON数据的两种方法

Android Mms之:草稿管理的应用

Android源码中的目录结构详解

Android设置桌面背景图片的实现方法

Android中判断网络连接是否可用及监控网络状态

Android 的Bitmap的修改方法

Android开发之动画实现方法

Android绑定添加了注解的控件,及其事件方法

Android对字符串的处理

精品推荐
分类导航