从广播接收器更改片段

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 - 在动态注册的广播接收器上出现“无法传递广播”错误

广播接收器来时更改菜单项图标

如何从广播接收器访问 Activity 的任何控件。不使用“静态”

用于更改日期的广播接收器

振铃模式更改监听器广播接收器?