您可以使用Local BroadcastReceiver 将数据从服务发送到活动
请在您获得令牌的 RestApiService 类中尝试此代码:
val intent = Intent("RestApiData")
intent.putExtra("token", myToken)
LocalBroadcastManager.getInstance(this).sendBroadcast(intent)
在上面的代码中,"RestApiData" 是广播接收器的主键,您需要在活动中获取数据,"token" 是 myToken 值的键
在您的MainActivity 类中,在onCreate 方法中使用以下代码:
LocalBroadcastManager.getInstance(this).registerReceiver(tokenPassingReceiver, IntentFilter("RestApiData"))
现在在活动的 onCreate 方法之外使用以下代码:
private val tokenPassingReceiver: BroadcastReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
val bundle = intent.extras
if (bundle != null) {
if (bundle.containsKey("token")) {
val tokenData = bundle.getString("token")
Log.e("MainActivity--","token--$tokenData")
}
}
}
}
欲了解更多信息,请查看此链接:Kotlin Android Broadcast Intents and Broadcast Receivers
希望对你有帮助。