0

У меня возникли проблемы после второго шага here.(Android Studio) Подключение приложения к компоненту Google Endpoints

Я действительно не понимаю, как этот образец делает что-то другое, кроме как вернуть простое тост-сообщение. Как он использует API для отображения этого сообщения?

class EndpointsAsyncTask extends AsyncTask<Pair<Context, String>, Void, String> { 
private static MyApi myApiService = null; 
private Context context; 

@Override 
protected String doInBackground(Pair<Context, String>... params) { 
    if(myApiService == null) { // Only do this once 
     MyApi.Builder builder = new MyApi.Builder(AndroidHttp.newCompatibleTransport(), 
       new AndroidJsonFactory(), null) 
      // options for running against local devappserver 
      // - 10.0.2.2 is localhost's IP address in Android emulator 
      // - turn off compression when running against local devappserver 
      .setRootUrl("http://10.0.2.2:8080/_ah/api/") 
      .setGoogleClientRequestInitializer(new GoogleClientRequestInitializer() { 
       @Override 
       public void initialize(AbstractGoogleClientRequest<?> abstractGoogleClientRequest) throws IOException { 
        abstractGoogleClientRequest.setDisableGZipContent(true); 
       } 
      }); 
      // end options for devappserver 

     myApiService = builder.build(); 
    } 

    context = params[0].first; 
    String name = params[0].second; 

    try { 
     return myApiService.sayHi(name).execute().getData(); 
    } catch (IOException e) { 
     return e.getMessage(); 
    } 
} 

@Override 
protected void onPostExecute(String result) { 
    Toast.makeText(context, result, Toast.LENGTH_LONG).show(); 
} 

Я боюсь, что мой образец слишком сложный для моих ограниченных знаний. Как именно я «разговариваю» с модулем конечных точек Google при запуске приложения? В частности, что такое EndpointsAsyncTask() ;?

Есть ли какие-либо ресурсы, перечисляющие все доступные мне методы? Есть ли более простой пример приложения, связанного с облачной конечной точкой Google?

ответ

0

Методы, услуг, доступной для вас определяется источником бэкэнда в разделе 1.

В примере вы в курсе, эта строка: myApiService.sayHi (имя) .Execute() является актуальной вызов вызов который вы определили путем аннотации @ApiMethod («sayHi») метода в классе MyEndpoint.java вашего бэкэнд-модуля.

Причина, по которой ваше Android-приложение определяет EndpointsAsyncTask, заключается в том, что медленные операции, такие как вызовы, которые попадают в сеть, должны происходить из потока пользовательского интерфейса, чтобы избежать блокировки пользовательского интерфейса. Демонстрационная версия просто помещает возвращаемое значение в Toast, но вы можете изменить onPostExecute(), чтобы делать все, что угодно, с результатом.

Для получения дополнительной информации о Google Endpoints проверить: https://cloud.google.com/appengine/docs/java/endpoints/

И для информации об использовании Android AsyncTask смотрите здесь: http://developer.android.com/reference/android/os/AsyncTask.html

 Смежные вопросы

  • Нет связанных вопросов^_^