У меня есть MainActivity.kt
, служба вызова, предоставляемая классом NetworkConfig.kt
(я новичок в разработке Android).
MainActivity.kt
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
NetworkConfig().getService()
.getUsers()
.enqueue(object : Callback<List<UserDataClassItem>> {
override fun onFailure(call: Call<List<UserDataClassItem>>, t: Throwable) {
Toast.makeText(this@MainActivity, "No Connection. Check your Connectivity", Toast.LENGTH_SHORT).show()
}
override fun onResponse(
call: Call<List<UserDataClassItem>>,
response: Response<List<UserDataClassItem>>
) {
rvUser.adapter = UserAdapter(response.body())
}
})
}
}
NetworkConfig.kt
class NetworkConfig {
// set interceptor
private fun getInterceptor() : OkHttpClient {
val logging = HttpLoggingInterceptor()
logging.level = HttpLoggingInterceptor.Level.BODY
return OkHttpClient.Builder()
.addInterceptor(logging)
.build()
}
private fun getRetrofit() : Retrofit {
return Retrofit.Builder()
.baseUrl("https://jsonplaceholder.typicode.com/")
.client(getInterceptor())
.addConverterFactory(GsonConverterFactory.create())
.build()
}
fun getService() = getRetrofit().create(Users::class.java)
}
//Access https://jsonplaceholder.typicode.com/users
interface Users {
@GET("users")
fun getUsers(): Call<List<UserDataClassItem>>
}
Я хочу знать, есть ли способ в Retrofit выполнить задачу, когда приложение запрашивает службу на фон (например, показывает индикатор выполнения)? То, что работает эквивалентно функции AsyncTask onPreExecute .
Если что-то неясно, дайте мне знать.