【问题标题】:Kotlin how to put extra from Activity to ServiceKotlin 如何将额外的 Activity 放到 Service
【发布时间】:2020-09-27 16:53:42
【问题描述】:

我想我现在如何添加额外内容,但不知道如何获取它们

Intent(this, MyService::class.java).also { intent ->
    bindService(intent, connection, Context.BIND_AUTO_CREATE)
    intent.putExtra("ip1", ip1)
    intent.putExtra("port1", port1)
 }

我尝试使用类似 val ip1 = getIntent().getStringExtra("ip1") 但它不起作用,它还说 getIntent() 已被弃用并改用 parseUri。

【问题讨论】:

  • 你应该在使用 bindService 的意图之前添加额外内容

标签: android kotlin android-intent service


【解决方案1】:

将意图参数放置在绑定到服务之前:

val intent = Intent(this, MyService::class.java)
intent.putExtra("ip1", ip1)
intent.putExtra("port1", port1)
bindService(intent, connection, Context.BIND_AUTO_CREATE)

并使用服务的 onBind 方法中的意图来取回值:

override fun onBind(intent: Intent): IBinder? {
    val ip1 = intent.getStringExtra("ip1")
    val port1 = intent.getStringExtra("port1")
    ...

    return binder
}

【讨论】:

    猜你喜欢
    • 2021-08-17
    • 1970-01-01
    • 2011-10-07
    • 1970-01-01
    • 1970-01-01
    • 2022-10-17
    • 2016-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多