【问题标题】: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 或日志的屏幕截图。请将所有文本作为文本发布。
  • 好的,我会发布它。

标签: android-studio android-fragments kotlin broadcastreceiver


【解决方案1】:

找到答案

我已经从

更改了代码
.commit()

.commitAllowingStateLoss()

这里有更多信息:

https://stackoverflow.com/a/17527246/11306547

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多