html5中文学习网

您的位置: 首页 > android » 正文

Android中断线程的处理方法_Android

[ ] 已经帮助:人解决问题

本文实例讲述了Android中断线程的处理方法。分享给大家供大家参考。具体方法如下:J7aHTML5中文学习网 - HTML5先行者学习网

我现在对一个用户注册的功能J7aHTML5中文学习网 - HTML5先行者学习网
1.用ProgressDialog将当前页面设成不可操作(保留返回键 退出ProgressDialog)J7aHTML5中文学习网 - HTML5先行者学习网
2.用一个线程clientThread执行数据的提交和返回J7aHTML5中文学习网 - HTML5先行者学习网

问题:考虑到ProgressDialog运行过程中,返回键的操作,应该终止clientThread的运行。J7aHTML5中文学习网 - HTML5先行者学习网

代码如下,感兴趣的朋友可以参考运行一下,以便得出更好的解决办法。J7aHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
J7aHTML5中文学习网 - HTML5先行者学习网
btn_register.setOnClickListener(new View.OnClickListener() {  J7aHTML5中文学习网 - HTML5先行者学习网
          J7aHTML5中文学习网 - HTML5先行者学习网
        @Override  J7aHTML5中文学习网 - HTML5先行者学习网
        public void onClick(View v) {  J7aHTML5中文学习网 - HTML5先行者学习网
            // TODO Auto-generated method stub   J7aHTML5中文学习网 - HTML5先行者学习网
            if(doBeforeSubmit()){  J7aHTML5中文学习网 - HTML5先行者学习网
      J7aHTML5中文学习网 - HTML5先行者学习网
                try {  J7aHTML5中文学习网 - HTML5先行者学习网
                    Log.v(TAG, "clientThread prepare01。。。:"+Thread.interrupted());  J7aHTML5中文学习网 - HTML5先行者学习网
                    clienThread=new Thread(){  J7aHTML5中文学习网 - HTML5先行者学习网
                        public void run() {  J7aHTML5中文学习网 - HTML5先行者学习网
                            try {  J7aHTML5中文学习网 - HTML5先行者学习网
                                Log.v(TAG, "clientThread prepare02。。。:"+Thread.interrupted());  J7aHTML5中文学习网 - HTML5先行者学习网
                                while (!Thread.interrupted()) {  J7aHTML5中文学习网 - HTML5先行者学习网
                                    Log.v(TAG, "clientThread starting。。。");  J7aHTML5中文学习网 - HTML5先行者学习网
                                    MeApiCall meApiCall=new MeApiCallImpl();  J7aHTML5中文学习网 - HTML5先行者学习网
                                    Me me=new Me();  J7aHTML5中文学习网 - HTML5先行者学习网
                                    me.setMeEmail(et_register_account.getText().toString().trim());  J7aHTML5中文学习网 - HTML5先行者学习网
                                    me.setMePwd(et_register_pwd.getText().toString().trim());  J7aHTML5中文学习网 - HTML5先行者学习网
                                    me.setMeName(et_register_nickName.getText().toString().trim()); J7aHTML5中文学习网 - HTML5先行者学习网
                                    Log.v(TAG, "clientThread data loaded。。。");       J7aHTML5中文学习网 - HTML5先行者学习网
                                    meApiCall.register(me);  J7aHTML5中文学习网 - HTML5先行者学习网
                                    Log.v(TAG, "clientThread callback。。。");  J7aHTML5中文学习网 - HTML5先行者学习网
                                    handler.sendEmptyMessage(AppConfig.Register.SUCCESS_MSG);  J7aHTML5中文学习网 - HTML5先行者学习网
                                   clienThread.interrupt();   //中断线程   J7aHTML5中文学习网 - HTML5先行者学习网
                                }  J7aHTML5中文学习网 - HTML5先行者学习网
                            } catch (InterruptedException e) {  J7aHTML5中文学习网 - HTML5先行者学习网
                                // TODO: handle exception   J7aHTML5中文学习网 - HTML5先行者学习网
                                Log.v(TAG, "clientThread is interrupt");  J7aHTML5中文学习网 - HTML5先行者学习网
                            }catch (Exception e) {  J7aHTML5中文学习网 - HTML5先行者学习网
                                // TODO Auto-generated catch block   J7aHTML5中文学习网 - HTML5先行者学习网
                                Log.v(TAG, "exception: "+e.getMessage());  J7aHTML5中文学习网 - HTML5先行者学习网
                                handler.sendEmptyMessage(AppConfig.Register.FAIL_OTHER_MSG);  J7aHTML5中文学习网 - HTML5先行者学习网
                                e.printStackTrace();  J7aHTML5中文学习网 - HTML5先行者学习网
                            }  J7aHTML5中文学习网 - HTML5先行者学习网
                        };  J7aHTML5中文学习网 - HTML5先行者学习网
                    };  J7aHTML5中文学习网 - HTML5先行者学习网
                    Log.v(TAG, "progressDialog prepare01。。。:");  J7aHTML5中文学习网 - HTML5先行者学习网
                    progressDialog=ProgressDialog.show(Register.this,   J7aHTML5中文学习网 - HTML5先行者学习网
         "",   J7aHTML5中文学习网 - HTML5先行者学习网
         "正在获取....",   J7aHTML5中文学习网 - HTML5先行者学习网
         true,   J7aHTML5中文学习网 - HTML5先行者学习网
         true,  J7aHTML5中文学习网 - HTML5先行者学习网
         new DialogInterface.OnCancelListener() {  J7aHTML5中文学习网 - HTML5先行者学习网
     J7aHTML5中文学习网 - HTML5先行者学习网
   @Override  J7aHTML5中文学习网 - HTML5先行者学习网
   public void onCancel(DialogInterface dialog) {  J7aHTML5中文学习网 - HTML5先行者学习网
       // TODO Auto-generated method stub   J7aHTML5中文学习网 - HTML5先行者学习网
         J7aHTML5中文学习网 - HTML5先行者学习网
    try {  J7aHTML5中文学习网 - HTML5先行者学习网
        clienThread.interrupt();  J7aHTML5中文学习网 - HTML5先行者学习网
        Log.v(TAG, "interrupt is success!");  J7aHTML5中文学习网 - HTML5先行者学习网
    } catch (Exception e) {  J7aHTML5中文学习网 - HTML5先行者学习网
        // TODO Auto-generated catch block   J7aHTML5中文学习网 - HTML5先行者学习网
        Log.v(TAG, "interrupt is fail!");  J7aHTML5中文学习网 - HTML5先行者学习网
        e.printStackTrace();  J7aHTML5中文学习网 - HTML5先行者学习网
    }  J7aHTML5中文学习网 - HTML5先行者学习网
   }  J7aHTML5中文学习网 - HTML5先行者学习网
      }  J7aHTML5中文学习网 - HTML5先行者学习网
        );  J7aHTML5中文学习网 - HTML5先行者学习网
                    Log.v(TAG, "clientThread prepareing_end。。。");  J7aHTML5中文学习网 - HTML5先行者学习网
                    clienThread.start();  J7aHTML5中文学习网 - HTML5先行者学习网
                    //Log.v(TAG, "clientThread prepareing_end。。。");   J7aHTML5中文学习网 - HTML5先行者学习网
                } catch (Exception e) {  J7aHTML5中文学习网 - HTML5先行者学习网
                    // TODO Auto-generated catch block   J7aHTML5中文学习网 - HTML5先行者学习网
                    Log.v(TAG, e.getMessage()+" 00");  J7aHTML5中文学习网 - HTML5先行者学习网
                    e.printStackTrace();  J7aHTML5中文学习网 - HTML5先行者学习网
                }  J7aHTML5中文学习网 - HTML5先行者学习网
            }  J7aHTML5中文学习网 - HTML5先行者学习网
        }  J7aHTML5中文学习网 - HTML5先行者学习网
    });  J7aHTML5中文学习网 - HTML5先行者学习网
J7aHTML5中文学习网 - HTML5先行者学习网

希望本文所述对大家的Android程序设计有所帮助。J7aHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助