внедрение геокодера

#android #android-context

#Android #android-контекст

Вопрос:

Я пытаюсь реализовать Geocoder в классе, который реализует Runnable , и я получаю ошибку в этой строке:

 Geocoder myLocation = new Geocoder(this, Locale.getDefault());
  

Я не думаю, что Android нравится this .

Но какой контекст я должен передать, чтобы это сработало?

 public class ClientThread_special implements Runnable {

    public void run() {
        Geocoder myLocation = new Geocoder(this, Locale.getDefault());
    } 

}
  

Я пытаюсь реализовать Geocoder в классе, который не расширяется Activity , и у меня возникают проблемы с передачей контекста для Geocoder конструктора.

Android не нравится this для моего класса. Я также пробовал с getApplicationContext …но все же в нем говорится, что «это не может быть разрешено ..».

Комментарии:

1. Хорошо, эмбри, Context — это класс, экземпляр которого вам нужен (например, activity или контекст приложения). «это» является работоспособным. Использование только имени класса не сработает. Похоже, это скорее вопрос синтаксиса и семантики Java, чем Android

Ответ №1:

Вы должны каким-то образом передать экземпляр контекста. Без этого геокодер не будет работать.

Ответ №2:

Если вам нужен экземпляр контекста и не требуется действие, расширьте класс ClientThread_special с помощью Service, и я думаю, тогда вам не понадобится Runnable.