Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用两个按钮终止和启动线程_Java_Android_Java Threads - Fatal编程技术网

Java 如何使用两个按钮终止和启动线程

Java 如何使用两个按钮终止和启动线程,java,android,java-threads,Java,Android,Java Threads,开始按钮 btn_start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { start_stop = true; thread.start(); chronometer.setBase(SystemClock.elapsedRealtime() + time

开始按钮

    btn_start.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            start_stop = true;
            thread.start();
            chronometer.setBase(SystemClock.elapsedRealtime() + timeWhenStopped);
            chronometer.start();

        }
    });
btn_stop.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        chronometer.stop();
        // 변수에 저장된 값 초기화!!
        timeWhenStopped =0;
        start_stop=false;
        graph.removeAllSeries();
        data = 0;
        double[] resetted = new double[50];
        saving = resetted;
        if(thread !=null && thread.isAlive()) thread.interrupt();
        i++;
    }

});
  • 停止按钮

        btn_start.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                start_stop = true;
                thread.start();
                chronometer.setBase(SystemClock.elapsedRealtime() + timeWhenStopped);
                chronometer.start();
    
            }
        });
    
    btn_stop.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            chronometer.stop();
            // 변수에 저장된 값 초기화!!
            timeWhenStopped =0;
            start_stop=false;
            graph.removeAllSeries();
            data = 0;
            double[] resetted = new double[50];
            saving = resetted;
            if(thread !=null && thread.isAlive()) thread.interrupt();
            i++;
        }
    
    });
    
  • 这是我在同一活动中的帖子

    runnable = new Runnable() {
    @Override
    public void run() {
        int j =i;
        if(!thread.interrupted()){
        for (int i = 0; i < 50; i++){
            if(start_stop){
                runOnUiThread(new Runnable() {
    
                    @Override
                    public void run() {
                        addEntry();
                    }
                });
                try {
                    Thread.sleep(600); //여기서 속도 제어할 수 있나봄!
                } catch (InterruptedException e) {
                    // manage error ...
                }
            }
        }
    }
    }
    };
    thread = new Thread(runnable);
    
    runnable=newrunnable(){
    @凌驾
    公开募捐{
    int j=i;
    如果(!thread.interrupted()){
    对于(int i=0;i<50;i++){
    如果(启动/停止){
    runOnUiThread(新的Runnable(){
    @凌驾
    公开募捐{
    加法();
    }
    });
    试一试{
    睡眠(600)//여기서 속도 제어할 수 있나봄!
    }捕捉(中断异常e){
    //管理错误。。。
    }
    }
    }
    }
    }
    };
    线程=新线程(可运行);
    
  • 所以我要做的是。我想画一些线图,从开始按钮开始,然后停止并用停止按钮清除。 然后用“开始”按钮再次绘制新图形。 但每次我尝试重新启动时,应用程序都会错误地关闭

    “线程已启动…”

    所以我想我需要通过点击停止按钮来终止或停止线程。。 我试过几种方法。。。推荐。。。在这附近,我还不能解决

    请帮帮我

    (+我是新来的,,,,,,,我的英语不太好..这也是我的第一个问题..抱歉有任何错误。谢谢)

    可能重复的