6

Android 11 のライフサイクルに、誰もが気付いた顕著な変更はありましたか?

私のアプリは Android 11 より前の OS では正常に動作しますが、Pixel 4 では毎回次のエラーでクラッシュします。

E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.IllegalStateException: Fragment host has been destroyed

Android 11 で自分のアプリに影響を与えるだけで、他の誰かが気づいたことは何かありますか?

アクティビティとフラグメントに別のファイルを使用しています。

私はTreasureHuntActivityonCreateを呼び出すものを持っています:

val fragmentTransaction = fragmentManager.beginTransaction()
fragmentTransaction.replace(R.id.container, TreasureHuntMapFragment.newInstance(), "map-${index}").addToBackStack("map-${index}").commit()
fragmentManager.executePendingTransactions()

それTreasureHuntMapFragmentが呼び出す

val intent = Intent(context, MainUnityActivity::class.java)
activity.startActivityForResult(intent, 33)
Handler().postDelayed({ activity.pushQuestionHintFragment() }, 1000)

戻って、表示するために をTreasureHuntActivity呼び出しますTreasureHuntQuestionHintFragment

fun pushQuestionHintFragment() {
val fragmentTransaction = fragmentManager.beginTransaction()
fragmentTransaction.replace(R.id.container, TreasureHuntQuestionHintFragment.newInstance(), "questionHintFragment-${specificQuestionId}").addToBackStack("questionHintFragment-${specificQuestionId}").commitAllowingStateLoss()
fragmentManager.executePendingTransactions()
}

これは、Android 11 以前では完全に機能しますが、11 以降では機能しません。さらにデバッグすると、以前は グローバルにfragmentManager宣言されていたnullとして表示されます var fragmentManager = supportFragmentManagerTreasureHuntActivity

Pixel 2 (Android の以前のバージョン) でデバッグすると、fragmentManagerは null ではなくBackStackEntry.

ライフサイクルまたはフラグメントを 1.3.0 にするために、decencies を 2.2.0 または 2.3.0-alpha07 に更新しようとしましたが、まだ喜びはありませんでした。

fragmentManager、Android 11 の呼び出し時にのみ null になりますpushQuestionHintFragment()。デバッグする場合this.isDestroyedも当てはまりますが、Android 11 でのみです。

4

1 に答える 1