广播接收器将错误的数据从一个活动发送到另一活动

问题描述 投票:0回答:1

我想从另一项活动中采取行动。我们称它们为SenderReceiver。因此,在Receiver中,我已经注册了接收者:

receiver = object : BroadcastReceiver() {
            override fun onReceive(context: Context, intent: Intent) {
                val command = intent.getIntExtra("action_id", -1)
                val bundle = intent.extras

                for (key in bundle!!.keySet()) {
                    val value = bundle[key]
                    Timber.i(String.format("%s %s (%s)", key,
                            value.toString(), value!!.javaClass.name))
                }

            }
        }

registerReceiver(receiver, IntentFilter("command"))

并且我在关闭之前从`Sender活动发送数据:

backToMess.setOnClickListener {
            dialog.dismiss()

            val intent = Intent()
            intent.action = "command"
            intent.putExtra("action_id", 1)
            intent.putExtra("m_id", intent.getIntExtra("message_id", 0))
            intent.putExtra("list_type", intent.getIntExtra("list_type", 0))
            intent.putExtra("list_pos", intent.getIntExtra("list_pos", 0))
            sendBroadcast(intent)

            finishAndRemoveTask()
        }

我从Sender发送的数据是:1,9238,1,12和我在Receiver接收的数据:1,0,0,0我不明白为什么会这样。也许我无法发送多个附加内容或其他内容?

android broadcastreceiver
1个回答
2
投票

我从发件人发送的是:1,9238,1,12

val intent = Intent()
intent.getIntExtra("message_id", 0)

您正在从刚创建的对象“ 0”中读​​取数据。

尝试

   backToMess.setOnClickListener {
        dialog.dismiss()

        val broadcastIntent = Intent()
        broadcastIntent.action = "command"
        broadcastIntent.putExtra("action_id", 1)
        broadcastIntent.putExtra("m_id", intent.getIntExtra("message_id", 0))
        broadcastIntent.putExtra("list_type", intent.getIntExtra("list_type", 0))
        broadcastIntent.putExtra("list_pos", intent.getIntExtra("list_pos", 0))
        sendBroadcast(broadcastIntent)

        finishAndRemoveTask()
    }
© www.soinside.com 2019 - 2024. All rights reserved.