我想从另一项活动中采取行动。我们称它们为Sender
和Receiver
。因此,在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
我不明白为什么会这样。也许我无法发送多个附加内容或其他内容?
我从发件人发送的是: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()
}