java – 如何正确中断android中的线程
发布时间:2020-12-15 04:21:02 所属栏目:Java 来源:网络整理
导读:在我的应用程序中,我有一个按钮,当它被点击时,我开始一个新的线程并更改按钮的文本.如果我再次按下按钮,它将开始更快地更改其文本. 我想在第二次按下按钮时中断线程.这样做的正确方法是什么? public class TestActivity extends Activity { Button btn; int
在我的应用程序中,我有一个按钮,当它被点击时,我开始一个新的线程并更改按钮的文本.如果我再次按下按钮,它将开始更快地更改其文本.
我想在第二次按下按钮时中断线程.这样做的正确方法是什么? public class TestActivity extends Activity { Button btn; int i = 0; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btn = (Button)findViewById(R.id.btn); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { runThread(); } }); } private void runThread() { new Thread() { public void run() { while (i++ < 1000) { try { runOnUiThread(new Runnable() { @Override public void run() { btn.setText("#" + i); } }); Thread.sleep(300); } catch (InterruptedException e) { e.printStackTrace(); } } } }.start(); } 解决方法
在我看来,最好的方法是使用变量来控制它.
就像是: while(i++ < 1000 && keepRunning) 我认为这是一个很好的解决方案,因为它无法导致意外行为,因为您确定线程将退出的确切时刻. 额外 – 作为一个建议,我也建议你设置你的线程非Damon(setDaemon(false)),因为它使布局更改 同样,给线程一个名称(setName())是一个很好的做法,以便于调试. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |