从广播接收器更改片段
Posted
技术标签:
【中文标题】从广播接收器更改片段【英文标题】:Change fragment from broadcastreceiver 【发布时间】:2020-10-05 18:03:28 【问题描述】:我的目标是使用广播接收器将 Activity B 的参数传递给 Activity A,效果很好。但是当我尝试从广播接收器更改 Activity A 中的 Fragment 时,它显示“在 onSaveInstanceState 之后无法执行此操作”
这是我的代码:
活动 B
val myintentdata = Intent("message_subject_intent")
myintentdata.putExtra("imagefile", file.path)
LocalBroadcastManager.getInstance(this@IdentitasActivity).sendBroadcast(myintentdata)
finish()
活动 A
val mMessageReceiver: BroadcastReceiver = object : BroadcastReceiver()
override fun onReceive(context: Context?, intent: Intent)
if(intent.hasExtra("penghuni"))
val name = intent.getStringExtra("penghuni")
Toast.makeText(this@NeinActivity, name, Toast.LENGTH_SHORT).show()
else if(intent.hasExtra("imagefile"))
val name = intent.getStringExtra("imagefile")
Toast.makeText(this@NeinActivity, name, Toast.LENGTH_SHORT).show()
Glide.with(this@NeinActivity).load(name).into(identitas)
supportFragmentManager.beginTransaction().replace(R.id.frame_layout, FragmentSelesai()).commit();
LocalBroadcastManager.getInstance(this)
.registerReceiver(mMessageReceiver, IntentFilter("message_subject_intent"))
所有帮助对我来说意义重大。
【问题讨论】:
请不要发布代码、XML 或日志的屏幕截图。请将所有文本作为文本发布。 好的,我会发布它。 【参考方案1】:找到答案
我已经从
更改了代码.commit()
到
.commitAllowingStateLoss()
这里有更多信息:
https://***.com/a/17527246/11306547
【讨论】:
以上是关于从广播接收器更改片段的主要内容,如果未能解决你的问题,请参考以下文章
Android - 在动态注册的广播接收器上出现“无法传递广播”错误