AsyncTask#doInBackground内でAndroidコンテキストを使用する場合、スレッドセーフですか?コンテキストは、コンストラクターを介して、または周囲のアクティビティからgetApplicationContext()を介して提供されます。この簡単な質問は、stackoverflowやその他の場所でよく聞かれますが、明確な答えが見つかりませんでしたか?
たとえば、doInBackground()では、DAOクラスをインスタンス化するためにコンテキストを使用します。
@Override
protected Void doInBackground(Void... params) {
ExampleDao dao = new ExampleDao(context);
...
}
この方法でそれを行ういくつかの例を見ましたが、コンテキストがメイントレッド(UIスレッド)とワーカースレッドによってアクセスされるようになったため、これがスレッドセーフであるとは想像できません。