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 でのみです。