如何停止在android中运行在runnable线程上的进度条

时间:2014-05-26 15:57:07

标签: android runnable

我正在开发一个测验应用程序,其中我使用runnable线程来实现搜索栏功能。 seekbar显示剩余时间。现在,我想在单击答案按钮时停止搜索栏。

这是我的runnable thread代码。

    new Thread(new Runnable() {
        public void run() {

             while (seekbarStatus < 100) {
                  seekbarStatus = LoadingStatus();
                  //  sleep 1 second to show the progress
                  try {
                          Thread.sleep(1000);
                      } 
                  catch (InterruptedException e) {
                          e.printStackTrace();
                      }

                  // Update the progress bar
                  progressBarHandler.post(new Runnable() {
                      public void run() {
                          seekbar.setProgress(seekbarStatus);
                      }
                  });
             }
             if (seekbarStatus >= 100) {

                 // sleep for  2 seconds, so that you can see the 100% of file download
                 runOnUiThread(new Runnable() {
                     @Override
                     public void run() {

                         if(!(Ans_1.getTag()=="clicked" ||Ans_2.getTag()=="clicked" || Ans_3.getTag()=="clicked" ))
                         {
                             Ans_1.setEnabled(false);
                             Ans_2.setEnabled(false);
                             Ans_3.setEnabled(false);
                             Ans_1.setBackgroundColor(Color.GREEN);
                             points.setText("0 Punkt");
                             new Handler().postDelayed(new Runnable(){
                                    @Override
                                    public void run() {
                                        /* Create an Intent that will start the Menu-Activity. */
                                        showDialogView();

                                    }
                                }, SPLASH_DISPLAY_LENGHT);

                         }


                    }

                    public void showDialogView() {
                        // TODO Auto-generated method stub
                        dialog.show();
                    }
                });

             }
         }


        }).start();

请帮帮我。任何帮助将不胜感激。

我没有得到如何解决它。

提前致谢。

1 个答案:

答案 0 :(得分:2)

只需添加一个实例变量:

private boolean isCancelled = false;

然后在按钮上点击:

button.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        isCancelled = true;

    }
});

然后改变

while (seekbarStatus < 100) {

while (seekbarStatus < 100 && !isCancelled) {