首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

上载中点击暂停没反应

2012-09-13 
下载中点击暂停没反应暂停没反应不知道怎么写了看代码Java code holder.btns .setOnClickListener(new OnC

下载中点击暂停没反应
暂停没反应 不知道怎么写了 看代码

Java code
 holder.btns .setOnClickListener(new OnClickListener(){                @Override                public void onClick(View v) {                                       [color=#FF0000]if (flag == 0){//判断点击标记[/color]                                          holder.ratingBarScore.setVisibility(View.GONE);                    holder.pro.setVisibility(View.VISIBLE);                    holder.textView.setVisibility(View.VISIBLE);                    if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){                    }else {//                        Toast.makeText(this, "没有SD卡", 1000).show();                        Log.v("wjp", "7889900");                    }                    final String downloadUrl =(String)v.getTag();                    Thread thread = new Thread(){                        int count = 0;                        public void run(){                          Log.v("ccf", "onClick");                          try {                              downLoadFile(context, downloadUrl, gameName, holder);                                  openFile(context, new File("/sdcard/9twan/"+ gameName +".apk"));                              if(!WebHelper.REGISTER_FLAG){                                  Log.v("GamesInfoListAdapter", "WebHelper.REGISTER_FLAG == false");                                  String imei, mac, mobile_number, model, brand;                                  boolean flag;                                  TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);                                  imei = tm.getDeviceId();                                  if(imei == null){                                      imei = "CUSTOM" + WebHelper.generateRandomIMEIString(15);                                  }                                  mac = null;//                                  mac = tm.getDeviceId();                                   if(mac == null){                                      mac = "CUSTOM" + WebHelper.generateRandomMacString(17);                                  }                                  mobile_number = tm.getLine1Number();                                  model = tm.getLine1Number();                                  brand = tm.getLine1Number();                                  flag = WebHelper.regDevice(context, "install", imei, mac, mobile_number, model, brand);                                  if(flag){                                      WebHelper.REGISTER_FLAG = true;                                      Log.v("GamesInfoListAdapter", "WebHelper.REGISTER_FLAG == true");                                  }                              }                                                         }catch (Exception e){                              e.printStackTrace();                          }                        }                    };                    Log.v("wjp", "正在运行"+thread.getName());                    thread.start();                    Toast.makeText(context, "开始下载" + gameName, 0).show();                    holder.btns.setBackgroundResource(R.drawable.tab_out);                                         [color=#FF0000]flag =1;[/color]//这里是需要暂停的  这里怎么写?                    }else {                          if(Thread.currentThread() !=null){                              Thread.interrupted();//                              Thread = null;                          }//                        thread.//                        Thread.interrupted();//暂停 返回boolean//                        Thread.sleep(3000);//                          Thread.                                                holder.btns.setBackgroundResource(R.drawable.tab_install);                        flag =0;                                             }                }            });        }        return convertView; 



[解决办法]
停线程,最好你的线程执行有个标志,别的线程改变这个标志。如果你的线程执行的是阻塞的操作,那主线程就结束这个阻塞:比如断开网络连接。

如果你发现没办法,只能强制杀掉线程,这说明需要考虑考虑重新设计逻辑了。
[解决办法]
下载线程没能停止,接受oyq_yangy的建议吧
[解决办法]
把thread弄成一个全局变量,再在需要的地方去控制它

热点排行