通过Kotlin发送广播开始新活动

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

我想在成功尝试DashBoardActivity之后启动LoginActivity。我也想在登录后广播UserToken。但是我可以startActivity()sendBroadcast().如果我在LoginActivity.kt中使用了以下代码,则

btnLogin.setOnClickListener {
    if(loginSuccess){
         sendBroadcast(Intent("TEST"))
         startActivity(Intent(this, DashboardActivity::class.java))
         finish()
    }
}

Dashboard Activity将打开,但广播onReceive()不起作用。请帮助我正确执行此任务。

DashBoardActivity.kt

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_dashboard)

        registerReceiver(userDataChangeReceiver,
            IntentFilter("TEST"))
    }

    private val userDataChangeReceiver = object: BroadcastReceiver() {
        override fun onReceive(context: Context?, intent: Intent?) {
            println("succeess!")
        }
    }
}
android kotlin android-activity broadcastreceiver
1个回答
0
投票
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_dashboard)

  val userDataChangeReceiver = object: BroadcastReceiver() {
    override fun onReceive(context: Context?, intent: Intent?) {
        println("succeess!")
    }
 }

    registerReceiver(userDataChangeReceiver,
        IntentFilter("TEST"))
 }
}
© www.soinside.com 2019 - 2024. All rights reserved.