エミュレータにおいて通知からドキュメントビューワを開いた状態で、再度通知からドキュメントビューワを開くと落ちる
不具合調査 【AgileWorksアプリ(今回製造アプリ)】
- エミュレータ(Nexus5X、OS:9、10、11、12)
AgileWorksアプリで通知からドキュメントビューワを開いた状態で、再度通知を受け取ってドキュメントビューワを開くとアプリが落ちる。
【調査内容】
-
実機(Android 12)で確認
⇒ エミュレータと同様落ちる -
再度通知を受け取ってドキュメントビューワを開く際にactivity.finish()が呼び出されているがこのfinish()の後に何か処理が続く場合、finish()が機能しないことがあるとの情報があった。
https://groups.google.com/g/android-group-japan/c/v-mDCsxsEyA?pli=1
http://www.android-navi.com/archives/android_1/finish_activity/
⇒ finish()の位置を変更するも動作に変更なし -
エラー内容の確認
⇒android.util.AndroidRuntimeException:Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this realy what you want?が出ている。
下記参考URLを参考にIntentへFLAG_ACTIVITY_NEW_TASKを設定する。
参考URL:
http://319ring.net/blog/archives/1442/
DirectOpenDocumentActivity.ktの69行目付近、startIntent関数のaddFlags部分をFLAG_ACTIVITY_NEW_TASKへ修正
⇒Android 12(Nexus 5X)エミュレータにて動作することを確認
【原因】
-
IntentへFLAG_ACTIVITY_NEW_TASKを設定していなかった
-
改善後動作確認
- 7.0(Nexus 6):正常に動作(4/27)
- 7.1(Nexus 6):正常に動作(4/27)
- 8.0(Nexus 5X):正常に動作(4/27)
- 8.1(実機:Nexus 5X):正常に動作(4/26)
- 9(Nexus 5):正常に動作(4/27)
- 10(Nexus 5X):正常に動作(4/26)
- 11(Nexus 5X):正常に動作(4/26)
- 12(Nexus5X):正常に動作(4/26)
★調査まとめ(2022/4/27)
- activity外から対象のactivityを起動する際はIntentへFLAG_ACTIVITY_NEW_TASKを設定する
◆結論
- IntentへFLAG_ACTIVITY_NEW_TASKを設定することで全OSバージョンにて正常に動作することを確認した