为了使用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
天蓬老师2017-04-17 18:02:49
このエラーは Glide によって引き起こされているようで、Timer とは何の関係もありません。
タイマーは一度だけ実行される遅延発光機能です。定期的にデータを送信したい場合は、間隔機能を試してください:
リーリー迷茫2017-04-17 18:02:49
スケジュールされたタスクの場合は、間隔から開始する必要があります。常にデータから開始することを考える必要はありません
リーリー元の投稿者の間違いは、タイマーが静的メソッドであり、前の from(getUri()) がまったく影響を及ぼさないことです。送信されるのは画像アドレスではなく、サイクル数です。グライドに投げたら型が違う。
ringa_lee2017-04-17 18:02:49
from の後に遅延をたどるだけです。具体的な API は次のとおりです http://reactivex.io/RxJava/javadoc/rx/Observable.html#lay(rx.functions.Func1)