そこで、AsyncTask クラスで Android を使用して、初めてのマルチスレッド アプリケーションを作成しています。これを使用して 2 番目のスレッドで Geocoder を起動し、onPostExecute で UI を更新しようとしていますが、適切なコンテキストで問題が発生し続けています。
メイン スレッドで Contexts を使用するのに苦労しましたが、Context とは何か、またはバックグラウンド スレッドで使用する方法が正確にはわかりません。また、良い例も見つかりませんでした。何か助けはありますか?これが私がやろうとしていることの抜粋です:
public class GeoCode extends AsyncTask<GeoThread, Void, GeoThread> {
@Override
protected GeoThread doInBackground(GeoThread... i) {
List<Address> addresses = null;
Geocoder geoCode = null;
geoCode = new Geocoder(null); //Expects at minimum Geocoder(Context context);
addresses = geoCode.getFromLocation(GoldenHour.lat, GoldenHour.lng, 1);
}
}
Contextが不適切なため、6行目で失敗し続けます。