0

我在第二步here后遇到问题。(Android Studio)将应用程序连接到Google端点模块

我真的不明白这个示例除了返回一个简单的Toast消息外什么都不做。它如何利用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 Endpoints模块“交谈”?具体来说,什么是EndpointsAsyncTask();?

是否有任何资源列出了所有可用的方法?是否有更简单的应用程序与Google Cloud Endpoint进行通信的示例?

回答

0

中可用的服务的方法是由后端源在第1

定义。在您发布的示例中,该行:myApiService.sayHi(名称).execute() 是一个实际的调用呼叫到您通过对后端模块的MyEndpoint.java类中的方法注释@ApiMethod(“sayHi”)来定义的后端。

您的Android应用程序定义EndpointsAsyncTask的原因是因为缓慢的操作(如呼叫网络的调用)需要从UI线程发生,以避免锁定UI。该演示只是将返回的值放入Toast中,但您可以修改onPostExecute()以根据结果执行任何操作。

有关谷歌端点的详细信息请查看: https://cloud.google.com/appengine/docs/java/endpoints/

以及有关使用Android的AsyncTask看看这里的信息: http://developer.android.com/reference/android/os/AsyncTask.html

相关问题