将广播接收机的片段改为

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

我的目标是给出一个来自 活动B活动A 通过使用广播接收器,它工作得很好。但是当我试图用广播接收器改变活动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"))

所有的帮助对我来说意义重大。

android-studio android-fragments kotlin broadcastreceiver
1个回答
0
投票

找到答案

我把代码从

.commit()

.commitAllowingStateLoss()

更多信息在这里。

https:/stackoverflow.coma1752724611306547

© www.soinside.com 2019 - 2024. All rights reserved.