2017年1月4日水曜日

MY_PACKAGE_REPLACEDの動作確認

MY_PACKAGE_REPLACEDの動作確認

Android Studioで、初期設定のままでデバッグを行うと、開発中のアプリのインストールと起動とが連続して行われてしまう。本番の環境では連続して行われることはない。
このままだと、action.MY_PACKAGE_REPLACEDに基づく動作確認が正確にできないかもしれない。

これを別々に行うには下記の設定をする。
Android Studio > Run > Edit Configurations... において、左上端の「+」を押し下げる。
「Android App」を選択する。
General > Installation Options > Deploy 及び General > Launch Options > Launch には、各々「Nothing」という項目があるので、この項目を活用すれば、インストールと起動とを別々に(連続させずに)行うことができる。

action.MY_PACKAGE_REPLACEDによる受信ができない

action.MY_PACKAGE_REPLACEDによる受信ができない

デバッグ環境において、今まで正常に動作していたMY_PACKAGE_REPLACEDによる受信ができなくなった。
Android端末を再起動すれば、受信できるようになりました。

2017年1月3日火曜日

ContentResolver#query() return null

ContentResolver#query() return null

古い機種は、端末の電源投入後、起動完了状態になるまで、1分以上かかる。
この間(起動が完了していない状態。起動途中の段階)で、ContentResolver#query()を使うと、nullが返る。

起動途中の段階でgetContentResolver()を実行した場合であっても、利用可能なContentResolverが返されてくる。

ContentResolver#query()を使いnullが返された場合、その原因が、起動途中の段階なのか、それともAndroidシステムに異常があるのか確認した方が良いかもしれない。
例えば、SystemClock#elapsedRealtime()とThread#sleep()を併用して、2分程度待つようにすれば良い。
なお、elapsedRealtime()は、電源投入を起点とした経過時間をミリ秒単位で返す。