1

我想在前台服务中使用retrofit和rxjava 3提取异步json数据并将其作为通知显示给用户,但到目前为止我还没有成功。

@Streaming
@GET("v2/top-headlines")
fun getDayNewsRxJava(
    @Query("country") language : String,
    @Query("apiKey") key : String
) : Observable<Model1>

val retrofit = Retrofit.Builder()
        .baseUrl("https://newsapi.org/")
        .addCallAdapterFactory(RxJava3CallAdapterFactory.create())
        .addConverterFactory(GsonConverterFactory.create())
        .build()

fun returnEveryDay() : everydayNews {
    return retrofit.create(everydayNews::class.java)
}

newsRetrofit.returnEveryDay().getDayNewsRxJava("language" , "apiKey")
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(object : Observer<Model1> {
            override fun onSubscribe(d: Disposable?) {
            }
            override fun onNext(t: Model1?) {
                val title = t!!.articles[0].title
                Log.d(TAG , "Rx Java Data : ${t?.articles[0].title}")
                sendNotification(title)
            }

            override fun onError(e: Throwable?) {
                Log.e(TAG , "Rx Java Error : $e")
            }

            override fun onComplete() {
                Log.d(TAG , "Rx Java Completed")
            }

        })

我以这种方式查看了不同的示例,它们没有使用非常不同的结构,但我不明白为什么不进行异步调用。

感谢您的帮助

4

0 回答 0