我如何在Android中停止线程

巨人金

我试图制作一个倒数计数器,其中用户单击按钮即可停止倒数。

我在互联网上搜索了一种方法来停止控制倒数的线程。

我试图使用interruptInterruptedstop却没有成功地阻止使用任何这些方法的线程。

问题:如何停止控制倒数计数器的线程?

public class Main2Activity extends AppCompatActivity {

    TextView mTextField;
    Button stop;
    Activity myActivity;
    PrimeThread T1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        myActivity=this;
        mTextField = (TextView) findViewById(R.id.counter);
        T1=new PrimeThread();
        T1.start(); }

    public void stop(View view){   T1.interrupt();    }

    class PrimeThread extends Thread {
        int i=10;
        public void run() {
            while(i>0){
                myActivity.runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        mTextField.setText("00:0"+i);
                    }
                });
                i--;
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }}}
}
奥古斯托·卡莫(Augusto Carmo)

您可以在线程中放置一个标志:

public class Main2Activity extends AppCompatActivity {

    TextView mTextField;
    Button stop;
    Activity myActivity;
    PrimeThread T1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        myActivity=this;
        mTextField = (TextView) findViewById(R.id.counter);
        T1=new PrimeThread();
        T1.start(); }

    public void stop(View view){   T1.stopRunning();    }

    class PrimeThread extends Thread {
        int i=10;
        boolean running = false;
        public void run() {
            running = true;
            while(running && i < 10){
                i++;
                myActivity.runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        mTextField.setText("00:0"+i);
                    }
                });
                i--;
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }

        public void stopRunning(){
            running = false;
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Android活动中停止线程

来自分类Dev

如何在Android中停止该线程?

来自分类Dev

如何在Android上停止线程?

来自分类Dev

如何在Java中停止线程

来自分类Dev

如何在C#中停止线程

来自分类Dev

如何在Java中停止线程

来自分类Dev

如何在python中停止线程变量

来自分类Dev

在Android中停止线程

来自分类Dev

在android中,如何在活动退出时停止包含处理程序的子线程?

来自分类Dev

在android中,如何在活动退出时停止包含处理程序的子线程?

来自分类Dev

Android MediaPlayer:如何在完成活动之前停止线程

来自分类Dev

如何在我的程序中停止执行

来自分类Dev

如何在其他功能中停止线程

来自分类Dev

如何在 onBackPressed 或 onPause 或 OnResume 中停止线程

来自分类Dev

当Android设备中的屏幕关闭时如何停止后台线程

来自分类Dev

如何在Android中停止警报

来自分类Dev

如何在Android Studio中停止动画?

来自分类Dev

如何在Android中停止警报

来自分类Dev

如何在Android中自动停止服务

来自分类Dev

我如何在Java中停止我的服务器

来自分类Dev

如何在MFC中停止主线程和等待子线程

来自分类Dev

如何在MFC中停止主线程和等待子线程

来自分类Dev

我如何停止可运行线程或“接口”

来自分类Dev

我们如何在Java中调用多个线程?

来自分类Dev

我如何在C中使用进程中的线程数组

来自分类Dev

我们如何在Java中调用多个线程?

来自分类Dev

我如何在线程中获得 odoo 环境

来自分类Dev

如何在我停止线程(Mythread.stop();)时去做某事,然后又想再次使用线程

来自分类Dev

我如何在线程中运行的函数中获取当前线程ID?

Related 相关文章

热门标签

归档