我正在将我的一些 Windows Phone 7 应用程序移植到 Android。当我们在 WP7 世界中调用服务时,调用是异步的。我们调用该服务,并且有一个委托 _completed 事件,该事件在返回结果时触发。与此同时,我们继续前进。
下面粘贴的 java android 代码是我在云服务器上调用 HTTP 服务的方式。我通过学习如何在 android 世界中调用服务的 Android 教程开发了这段代码。显然,这里的服务调用是同步的,因此以 InputStream in... 开头的指令在返回结果之前不会被执行。
这是它应该如何为Android工作?如果服务没有响应,则等待几分钟,然后发生超时异常。那不好。一切都会挂起。
在android中调用服务的推荐方式是什么?谢谢,加里
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
HttpURLConnection urlConnection = null;
try
{
URL url = new URL("http://www.deanblakely.com/REST/api/products");
urlConnection = (HttpURLConnection) url.openConnection();
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
String myString = readStream(in);
String otherString = myString;
otherString = otherString + " ";
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
urlConnection.disconnect();
}
}