改造响应不显示

时间:2018-08-26 12:39:31

标签: android rest kotlin retrofit

最初不会显示我的Retrofit响应,而只有在我退出应用程序并返回时才显示。如果我转到另一个活动之后,返回带有数据的活动,数据也将消失。你们中有人有这个问题吗?

这是我的职能

private fun makeRetrofit(){
    //Toast.makeText(applicationContext, "This is from makeRetrofit function start", Toast.LENGTH_LONG).show()
    val myretrofit = Retrofit.Builder()
            .baseUrl("https://noelvillaman.com/about/")
            .addConverterFactory(GsonConverterFactory.create())
            .build()

    val api = myretrofit.create(Api::class.java)

    val call = api.getUnits()

    call.enqueue(object : Callback<List<UnitObject>> {

        override fun onResponse(call: Call<List<UnitObject>>, response: Response<List<UnitObject>>) {
            Toast.makeText(applicationContext, response.isSuccessful.toString(), Toast.LENGTH_LONG).show()
            if (response != null && response.isSuccessful){
                var units = response.body()
                Toast.makeText(applicationContext, "Success", Toast.LENGTH_LONG).show()

                if (units != null) {
                    for (unit in units) {
                        Log.d("unit", unit.getUnit())
                        Log.d("vocabulary", unit.getVocabulary().toString())
                        Log.d("grammar", unit.getGrammar())
                        Log.d("idioms", unit.getIdioms())
                        val subjects = Subjects(unit.getUnit(), unit.getVocabulary(), unit.getGrammar(), unit.getIdioms())
                        //dataSubjects.add(subjects)
                        completeList.add(subjects)


                    }

                }
            }
        }

        override fun onFailure(call: Call<List<UnitObject>>?, t: Throwable?) {
            Toast.makeText(applicationContext, t?.message, Toast.LENGTH_LONG)
        }
    })
}

以下是我要描述的屏幕截图。

When the app first opens

When I navigate away from it.

When I return to the app.

1 个答案:

答案 0 :(得分:0)

Scarboro先生,您所附的两张图片看不出有什么区别。无论如何,从代码方面来说,如果使用单例作为改造对象并在应用程序的生命周期中对其进行一次初始化总是很好的,因为改造初始化期间的httpClient创建是一项昂贵的操作。

能不能请您附上日志截屏,是否会得到日志?

  • 如果您正在获取日志,则意味着您正在获取数据。(API成功)
  • 否则,除非收到错误Toast,否则表示成功回调中的if条件将失败。