java - 如何取消android studio中的特定线程?

标签 java multithreading android-studio

如果在这 15 秒内按下按钮,如何取消此线程?

            new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                    try {
                        sound1.setVolume(1, 1);
                    } catch (Exception e) {
                        Log.e("Exception", e.getMessage());
                    }                    }
            },15000);

如果我有 2 个踏板,每个踏板都与上述相同怎么办?我如何引用其中之一?

最佳答案

您可以创建自己的线程类,这样您就可以通过它们的名称来访问它们。


public class Sound extends Thread {

   public boolean stop = false;
    public void run() {
        try {
            for (int i = 0; i < 150; i++) {
                if (stop) {
                    return;
                }
                sleep(100);
                System.out.println(i);

            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}


然后你可以像这样停止线程;

Sound s = new Sound();
s.start();
.
.
.
s.stop = true;

关于java - 如何取消android studio中的特定线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64343520/

相关文章:

java - 在多线程环境中使用 DateFormat 时使用 synchronized 关键字

java - 无法在java中实现A Star

c# - 如何使用多线程、锁、Socket编程

android - 如何从 WearableListenerService 更改 UI?

android - 使用 Android Studio 生成 Google Endpoints 库 (JDO)

android - 无法使用转换 JetifyTransform 转换文件 'some-lib-release.aar' 以匹配属性 {artifactType=processed-aar}

java - 比较java项目的版本

java - 是否有一个 RDD 变换函数可以查看相邻元素?

c - 编译算法的 OpenMP 和单线程版本的更好解决方法是什么?

android - XML-安卓 :layout_above Error