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()は、電源投入を起点とした経過時間をミリ秒単位で返す。

0 件のコメント:

コメントを投稿