Как соблюдает метод String, возвращающий значение каждую секунду? - PullRequest
1 голос
/ 18 января 2020

Мне нужно наблюдать строку, которая является именем верхнего пакета приложения и его изменениями во что-то. Я пытался сделать что-то вроде этого:

getObservable()
                .distinctUntilChanged()
                .subscribeOn(Schedulers.newThread())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribeWith(disposableObserver);

public  Observable<String> getObservable() {
    return Observable.just(getTopPackageName()).delay(1000, TimeUnit.MILLISECONDS).repeat();
}
String getTopPackageName(){
   // return top package name;
}

Я хочу получать изменения верхнего пакета каждую секунду, и если он не изменился и предыдущий верхний пакет все равно ничего не делает. Я не могу понять, как это сделать

1 Ответ

2 голосов
/ 18 января 2020

Просто измените свой getObservable() метод:

public  Observable<String> getObservable() {
    return Observable.interval(1, TimeUnit.SECONDS).map(v -> getTopPackageName());
}
...