찾다

 >  Q&A  >  본문

android - RxJava使用from操作符之后怎么每次发射数据时延迟一段时间

为了使用RxJava实现在ImageView中每隔指定时间加载一张系统图片的效果,

Observable.from(getUri()).timer(2,TimeUnit.SECONDS).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(uri
-> {
            Log.e("uri",uri+"");
            Glide.with(this).load(uri).into(img);}); 
            }

在getUri()中返回了一个ArrayList<Uri>对象,然后每次发射一个uri到订阅者中,怎么让这个发射过程延迟调用。
使用timer操作符出现了以下错误:Unknown type class java.lang.Long. You must provide a Model of a type for which there is a registered ModelLoader, if you are using a custom model, you must first call Glide#register with a ModelLoaderFactory for your custom model class

高洛峰高洛峰2888일 전508

모든 응답(3)나는 대답할 것이다

  • 天蓬老师

    天蓬老师2017-04-17 18:02:49

    이 오류는 Glide에서 발생한 것으로 보이며 타이머와는 관련이 없습니다!

    타이머는 한 번만 실행되는 지연 방출 기능입니다. 정기적으로 데이터를 보내고 싶다면 간격 기능을 사용해 보세요:

    으아악

    회신하다
    0
  • 迷茫

    迷茫2017-04-17 18:02:49

    예약된 작업은 반드시 간격부터 시작해야 하며, 항상 데이터부터 시작하려고 생각하지 마세요

    으아악

    원래 포스터의 실수는 타이머가 정적 메서드이고 이전 from(getUri())가 전혀 영향을 미치지 않는다는 것입니다. 전송되는 것은 이미지 주소가 아니라 유형이 Long입니다. 글라이드에 던진 후 유형이 잘못되었습니다.

    회신하다
    0
  • ringa_lee

    ringa_lee2017-04-17 18:02:49

    from 이후의 지연을 따르세요. 구체적인 API는 다음과 같습니다. http://reactivex.io/RxJava/javadoc/rx/Observable.html#delay(rx.functions.Func1)

    회신하다
    0
  • 취소회신하다