我正在开发一个测验应用程序,其中我使用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();
请帮帮我。任何帮助将不胜感激。
我没有得到如何解决它。
提前致谢。
答案 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) {