Оператор Switch, вызывающий все случаи в AsyncTask, даже если переменная не совпадает - PullRequest
0 голосов
/ 17 октября 2019

Я создал AsyncTask с оператором switch.Here Bothe называется «Тест и медицина». Очень странное поведение

    BackendAsync backendAsync = new BackendAsync();
    backendAsync.execute("Test");

public class BackendAsync extends AsyncTask<String,Void,Void>{

    @Override
    protected Void doInBackground(String... strings) {

        switch (strings[0]){

            case "Test": {

                Log.d("Test", "doInBackground: Called Test");
            }
            case "Medicine": {

                Log.d("Medicine", "doInBackground: Called Medicine");
            }


        }

        return null;
    }
}

Результат:

D / Test: doInBackground:Тест под названием D / Медицина: doInBackground: Медицина под названием

Ответы [ 3 ]

1 голос
/ 17 октября 2019

Используйте это так

 case "Test": {

            Log.d("Test", "doInBackground: Called Test");
            break;
        }
        case "Medicine": {

            Log.d("Medicine", "doInBackground: Called Medicine");
            break;
        }
1 голос
/ 17 октября 2019
BackendAsync backendAsync = new BackendAsync();
    backendAsync.execute("Test");

public class BackendAsync extends AsyncTask<String,Void,Void>{

    @Override
    protected Void doInBackground(String... strings) {

        switch (strings[0]){

            case "Test": {

                Log.d("Test", "doInBackground: Called Test");
            }
    break;
            case "Medicine": {

                Log.d("Medicine", "doInBackground: Called Medicine");
            }
    breakl


        }

        return null;
    }
}
0 голосов
/ 17 октября 2019

добавить перерыв после каждого случая

public class BackendAsync extends AsyncTask<String,Void,Void>{

    @Override
    protected Void doInBackground(String... strings) {

        switch (strings[0]){

            case "Test": {

                Log.d("Test", "doInBackground: Called Test");
                  break;
            }
            case "Medicine": {

                Log.d("Medicine", "doInBackground: Called Medicine");
                  break;
            }


        }

        return null;
    }
}
...