危険なアクセス許可を必要とする一部のフラグメント ライフサイクル メソッド内でコードを実行するフラグメント ベースのアプリ (「targetSdkVersion 23」を使用) があります。OS 6 パーミッション フレームワークには、アプリが実際にパーミッションを必要とするコードの実行に進む前に、コールバックによるパーミッションの受け入れが含まれます。OS 6 パーミッション モデルは同期モードを提供していないようで、危険なパーミッションに依存するライフサイクル メソッド内で現在実行されている (マシュマロ以前の) 一連のコードがあります。この新しいコールバック要件により、既存のコードが壊れます。これは、コールバックの非同期性により、メイン スレッドが前のライフサイクル メソッドのロジックの実行を完了せずに (!) 次のライフサイクル メソッドの実行に進むことを余儀なくされるためです。
メイン スレッドでブロッキング テクニック (BlockingQueue、CountDownLatch など) を適用すると、コールバックが発生しなくなります。
現在のアプリを壊したり、フラグメントアプリを大規模に再構築したりすることなく、実行時のアクセス許可を要求して取得できるようにする手法またはコーディングモデルを提案できる人はいますか?
PS。Java8 ベースのアプリです。