Android中断线程的处理方法

 更新时间:2014年11月11日 15:10:56   投稿:shichen2014  
这篇文章主要介绍了Android中断线程的处理方法,涉及到线程的中断、处理与返回等操作,具有一定的参考借鉴价值,需要的朋友可以参考下

本文实例讲述了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 调用notifyDataSetChanged方法失败解决办法

    Android 调用notifyDataSetChanged方法失败解决办法

    这篇文章主要介绍了Android 调用notifyDataSetChanged方法失败解决办法的相关资料,需要的朋友可以参考下
    2017-07-07
  • Android实现购物车添加商品动画

    Android实现购物车添加商品动画

    这篇文章主要为大家详细介绍了Android实现购物车添加商品动画,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Android Studio 3.6 新特性一览(推荐)

    Android Studio 3.6 新特性一览(推荐)

    这篇文章主要介绍了Android Studio 3.6 新特性一览,本文图文并茂给大家介绍的非常详细,对大家的工作或学习具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • Java语言读取配置文件config.properties的方法讲解

    Java语言读取配置文件config.properties的方法讲解

    今天小编就为大家分享一篇关于Java语言读取配置文件config.properties的方法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • 详解如何使用Android Studio 进行NDK开发和调试

    详解如何使用Android Studio 进行NDK开发和调试

    本篇文章主要介绍了详解如何使用Android Studio 进行NDK开发和调试,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • Android 完整购物商城界面的实现案例

    Android 完整购物商城界面的实现案例

    这篇文章为大家带来一个Android 完整购物商城的界面具体的实现,案例中含有商品列表的显示,为商城最重要的功能之一,感兴趣的朋友来看看吧
    2022-03-03
  • Android闪屏效果实现方法

    Android闪屏效果实现方法

    这篇文章主要介绍了Android闪屏效果实现方法,结合实例形式分析了Android闪屏效果的实现原理及相关功能与布局设置技巧,需要的朋友可以参考下
    2016-01-01
  • Android ZxingPlus精简的二维码框架示例代码

    Android ZxingPlus精简的二维码框架示例代码

    下面小编就为大家分享一篇Android ZxingPlus精简的二维码框架示例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • Qt for Android开发实例教程

    Qt for Android开发实例教程

    这篇文章主要介绍了Qt for Android开发的方法,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-08-08
  • android studio2.3如何编译动态库的过程详解

    android studio2.3如何编译动态库的过程详解

    这篇文章主要给大家介绍了关于android studio 2.3如何编译动态库的过程,文中通过示例代码介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
    2017-08-08

最新评论