android - 在 Kotlin 中通过发送广播启动新 Activity
问题描述
我想DashBoardActivity
在成功尝试LoginActivity
. 我也想在登录后广播 UserToken。但是我可以startActivity()
或者如果我当时sendBroadcast().
使用了以下代码LoginActivity.kt
btnLogin.setOnClickListener {
if(loginSuccess){
sendBroadcast(Intent("TEST"))
startActivity(Intent(this, DashboardActivity::class.java))
finish()
}
}
Dashboard Activity
将打开,但广播onReceive()
不起作用。请帮助我正确地完成这项任务。
仪表板活动.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!")
}
}
}
解决方案
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"))
}
}
推荐阅读
- python - 当我们从模块中调用函数时,函数内部只有注释,那么函数究竟是如何实现其功能的呢?
- google-cloud-platform - 如何连接到 gcloud 实例并在启动时或在一行中连续运行命令
- python - PyQt5低于Qlabel空间宽度
- mysql - MySQL 使用 Group by 和 Order by
- .net-core - 将带有公钥的 .pem 加载到 x509Certificate2
- spring - 将 Spring Boot 从 2.1.4 更新到 2.2.5 后找不到 bean entityManagerFactory
- macos - 如何为 Sublime Text 3 创建永久 subl 链接?(麦克卡特琳娜)
- javascript - 是否有某种role.edit 切换功能?我正在制作一个应该在权限之间切换但似乎无法做到的命令
- c - 使用 for 循环迭代二维数组的时间复杂度是多少?
- macos - 使用 SSH 连接附加到 tmux 会话时如何在我的机器上打开新窗口?