我正在尝试制作一种播放器,因此,我设置播放按钮和暂停按钮并使它们成为clickListener。当我按下播放按钮时,线程开始(并且它工作正常)但暂停按钮不会工作,直到线程完成。我该怎么做才能解决它?
构造
play = false;
playButton=(ImageButton)findViewById(R.id.imageButton1);
playButton.setOnClickListener(playButtonClick);
runnable:
private Runnable runnable=new Runnable() {
@Override
public void run() {
int count=0;
long time=System.currentTimeMillis();
while(count<24*3 && play)
{
if (System.currentTimeMillis()-time>41.67){
count++;
time=System.currentTimeMillis();
scene.play();
draw(sf.getHolder());
}
}
play=false;
}
clickListener:
private OnClickListener playButtonClick=new OnClickListener() {
@Override
public void onClick(View v) {
if (!play){
play = true
scene=new TestScene(3,t);
thread=new Thread(runnable);
thread.run();
}else
play = false;
}
};
问题:当线程运行时我无法停止它,函数clicklistner在线程停止时正在工作。
答案 0 :(得分:0)
根据您的问题,A Thread
正在其自己的空间中运行。停止Thread
的唯一方法是告诉它停止。您可以设置一些Thread
正在侦听的静态变量。 Thread
可以根据变量的状态采取必要的操作。在最简单的情况下按暂停按钮可以更改Thread
类文件
答案 1 :(得分:0)
尝试使用Thread.start()而不是Thread.run()
请参阅主题文档:
如果使用单独的Runnable运行对象构造此线程,则调用该Runnable对象的run方法;否则,此方法无效并返回。
修改强> 您还可以阅读this答案,了解有关开始与运行的更多信息