Я пишу код для заставки как часть проекта, но когда я пытаюсь использовать RxJava, все остальные функции работают нормально, пока я не дохожу до 'subscribe', которая не регистрируется, поэтому я задаюсь вопросом: может быть, я не импортировал какую-то библиотеку или что-то еще?

При попытке запуска я получаю сообщение об ошибке: "Не удается разрешить метод 'subscribe'". Я пробовал спрашивать создателя учебника, а также просматривал топ релевантных вопросов о функции 'subscribe' на StackOverflow и даже просматривал полный список методов в библиотеке Completable, но я не могу найти решение, поэтому я в полном отчаянии, пожалуйста, помогите

.

Вот мои зависимости:

implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
реализация 'io.reactivex.rxjava2:rxjava:2.2.20'

Мой код:

package codebymech.fyprideshareapp;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Notification;
import android.os.Bundle;
import android.widget.Toast;

import java.util.concurrent.TimeUnit;

import io.reactivex.Completable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.functions.Action;


public class Activity_SplashScreen extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        delay_Splash();
    }

        private void delay_Splash() {
            Completable.timer(delay: 5, TimeUnit.SECONDS,
                AndroidSchedulers.mainThread())
                .subscribe(new Action() {
                    @Override
                    public void run() throws Exception {
                        Toast.makeText(Activity_SplashScreen.this, "!!! Splash Screen Finished", Toast.LENGTH_SHORT).show();
                    }

                });
    }
}

Часть учебника, откуда взят код: https://youtu.be/144TuYxEu2M?t=489

Mech no.44

Ответов: 1

Ответы (1)

Вы должны удалить delay: . В Java это невозможно. Если вы посмотрите на видео, то увидите delay: в данном методе, но он добавлен IDE (IntelliJ) для того, чтобы дать вам подсказку, какой параметр вы сейчас редактируете.

Импорт

import io.reactivex.Completable;
import io.reactivex.functions.Action;
import io.reactivex.schedulers.Schedulers;

Java8

 Completable.timer(5, TimeUnit.SECONDS,
            Schedulers.trampoline())
            .subscribe(() -> {
               System.out.println("x");
            });

Java7

 Completable.timer(5, TimeUnit.SECONDS,
            Schedulers.trampoline())
            .subscribe(new Action() {
                @Override
                public void run() throws Exception {
                    System.out.println("x");
                }
            });

2022 WebDevInsider