Запрос прерывания потока не работает на Ios - PullRequest
1 голос
/ 27 мая 2019

Я создаю новый поток, и вам нужно прерывать, я использую thread.interrup(), но когда я генерирую запрос, прерывание потока не работает на ios, отлично работает на симуляторе или на устройстве Android.

Я прилагаю код, чтобы попробовать.

Мое временное решение - использовать флаг, чтобы остановиться, но я хочу использовать InterruptedException

package com.kandy.forms;

import com.codename1.io.Log;
import com.codename1.ui.Button;
import com.codename1.ui.Dialog;
import com.codename1.ui.Display;
import com.codename1.ui.Form;
import com.codename1.ui.layouts.BoxLayout;


public class Interrup extends Form {

    private Form previous;
    private Thread thread = null;


    public Interrup() {

        setLayout(new BoxLayout(BoxLayout.Y_AXIS));

        Button newThread = new Button ("Start Thread");
        newThread.addActionListener((e) -> {
            thread = new Thread(new Runnable() {
                @Override
                public void run() {
                    while (true) {
                        try {
                            Thread.sleep(1000);
                            Log.p("thread working");
                        } catch (InterruptedException ie) {
                            Dialog.show("Message", "Interruption received", "Ok", null);
                            break;
                        }
                    }
                }
            });
            //thread start
            thread.start();
        });

        Button interruptTreath = new Button ("Interrupt");
        interruptTreath.addActionListener((e) -> {
            Log.p("Interrupt Sended");
            thread.interrupt();
        });

        add(newThread);
        add(interruptTreath);       

    }

    public void show() {
        previous = Display.getInstance().getCurrent();
        super.show();
    }

    public void goBack(){
        previous.showBack();
    }

}

1 Ответ

1 голос
/ 28 мая 2019

Это не поддерживается на iOS.Ни один из них не остановит и т. Д., Так как довольно сложно работать согласованно на разных платформах.Это особенно верно для iOS и реализации потоков в порту JavaScript.

...