如何启动和停止Runnable

时间:2015-02-09 13:52:56

标签: android-activity

以下任何人都可以帮助我的项目。我需要使用开始和停止按钮停止我的Runnable Thread。我会在停止按钮中输入什么代码?


公共类MainActivity扩展ActionBarActivity实现OnClickListener {

Context context;
Runnable runnable;
Handler handler;
Thread myThread;
Button btnstart, btnstop;
boolean Running1 = true;
Toast toaststat;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    context = this;

    btnstart = (Button) findViewById(R.id.button1);
    btnstop = (Button) findViewById(R.id.button2);
    btnstart.setOnClickListener(this);
    btnstop.setOnClickListener(this);


}





public class RunTimer implements Runnable {
    @Override
    public void run() {
        while(Running1){

            try{
                Thread.sleep(3000);}
            catch(InterruptedException e){
                e.printStackTrace();
            }


            handler.post(new Runnable(){
                @Override
                public void run(){






                }
            });
        }
    }
}







@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    switch(v.getId()){
    case R.id.button1: //START
        myThread= new Thread(new RunTimer());
        myThread.start();

        break;
    case R.id.button2: //STOP

        break;
}



}

1 个答案:

答案 0 :(得分:2)

您需要做的第一件事是停止线程。曾经有stop方法,但由于here提到的原因,该方法已被弃用。

你应该做的是中断要求它停止的线程。按下button2时可以调用中断方法。

case R.id.button2: //STOP
    myThread.interrupt();
    break;

Thread.interrupt产生一个InterruptedException,你已经抓住了它。然后,您需要从线程中手动中断它。

try {
    Thread.sleep(3000);
} catch (InterruptedException e) {
    Thread.currentThread().interrupt();
}

有关详细信息,请阅读Thread interrupt方法的文档。