Сменить фрагмент из широковещательного приемника - PullRequest
0 голосов
/ 16 июня 2020

Моя цель - передать параметр от Activity B до Activity A с помощью широковещательного приемника, он работал хорошо. Но когда я попытался изменить фрагмент в действии A из широковещательного приемника, он показал «Невозможно выполнить это действие после onSaveInstanceState»

вот мой код:

Activity B

val myintentdata = Intent("message_subject_intent")
            myintentdata.putExtra("imagefile", file.path)
            LocalBroadcastManager.getInstance(this@IdentitasActivity).sendBroadcast(myintentdata)
            finish()

Activity 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"))

Всякая помощь много значит для меня.

1 Ответ

0 голосов
/ 16 июня 2020

Ответ найден

Я изменил код с

.commit()

на

.commitAllowingStateLoss()

подробнее здесь:

{ ссылка }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...