源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Android中断线程的处理方法

  • 时间:2021-09-25 01:16 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Android中断线程的处理方法
本文实例讲述了Android中断线程的处理方法。分享给大家供大家参考。具体方法如下: 我现在对一个用户注册的功能 1.用ProgressDialog将当前页面设成不可操作(保留返回键 退出ProgressDialog) 2.用一个线程clientThread执行数据的提交和返回 问题:考虑到ProgressDialog运行过程中,返回键的操作,应该终止clientThread的运行。 代码如下,感兴趣的朋友可以参考运行一下,以便得出更好的解决办法。
[u]复制代码[/u] 代码如下:
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程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部