2020年4月18日土曜日

FLAG_ACTIVITY_NEW_TASKのAndroid 9での変更点

Android 10がリリースされてから半年くらい経ちましたかね。
ついにお菓子の名前すら付かなくなりました。毎回予想したり、どのお菓子になるのか楽しみではあったのですが。

実は2018年にPixel 3を購入してまして、すでにAndroid 10にアップデートしてあります。
それどころか、もうAndroid R Developer Previewが始まっておりまして、いやはやAndroidの動きはめちゃくちゃ早いです。

今回はAndroid 10ではなくAndroid 9(P)で「Android Developerに記載はあるけどあまり気づかれない」変更点があります。
それが「ServiceやBroadcastReceiverなど、画面を持たないComponentからのstartActivity()時、IntentにFLAG_ACTIVITY_NEW_TASKを付与しないと起動しなくなった」という点。
元々、これは本来は必要なフラグとして設計されていたようなのですが、ある時を境に一旦制限が無効化されました。
しかも、Android 7.0ではいかなるFlagも強制的に無効化されるバグがあるとか。
それが全てにおいて補正されました。結構ハマりがちです、
Logcatでも出力されるので、しっかりデバッグしてたら気づけるものではあるんですが、
理由を知らないと「なんで???」ってなるので、この記事がその根拠の一助になればと思います。

今度は、昨今のAndroidでよく目にするJobServiceあたりを取り上げてみようかな?

0 件のコメント:

コメントを投稿