как передать параметры намерению с помощью bindService? - PullRequest
0 голосов
/ 14 июля 2020

Я хочу передать параметры (например, двойное значение) в службу с использованием activity.bindService,

var  intent = Intent(activity, MyService::class.java)
activity.bindService(intent, mServiceConnection, Context.BIND_AUTO_CREATE)

private val mServiceConnection = object : ServiceConnection {
    override fun onServiceConnected(name: ComponentName, service: IBinder) {
        mBound = true
        val binder = service as MyService.LocalBinder
        mService = binder.service
    }

    override fun onServiceDisconnected(name: ComponentName) {
        mService = null
    }
}

Я пробовал использовать intent.putExtra, но при получении значения с помощью getExtra всегда имеет значение null. Я знаю, что putExtra работает в startActivity, но не работает в bindService.

Это может быть глупый вопрос, но я не из Android фона.

1 Ответ

1 голос
/ 14 июля 2020

Попробуйте это

val intent = Intent(activity, MyService::class.java).apply {
    putExtra("your_key", 1.1) // put your value here
}
activity.bindService(intent, mServiceConnection, Context.BIND_AUTO_CREATE)
override fun onBind(intent: Intent): IBinder? {
    val value = intent.getDoubleExtra("your_key", 0.0) // 1.1
    return binder
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...