1

在我的 Android 应用程序中,我想调用一些网络应用程序方法。我为此使用 hessian (hessdroid library for Android)。

这就是它的工作原理:在我的 Android 应用程序中,我有所有服务器方法的接口,例如 getUserById()、getMessageById()、getSomethingElse() 等。

使用 Hessian,我可以通过 http 调用这些方法。

所以我需要为此初始化 Hessian Proxy:

HessianProxyFactory proxyFactory = new HessianProxyFactory();
UserAccountService api = (UserAccountService) proxyFactory.create(UserAccountService.class, "http://localhost:8080/server/UserAccountService", getClassLoader());

之后,我可以运行这样的服务器方法:

UserAccount user = api.getUserById(999);

问题是api调用像“api.someMethod();” 需要从单独的线程运行。在任何其他情况下,我都有 NetworkOnMainThread 异常。

我的问题是如何以正确的方式拨打这些电话?我应该为每个服务器方法调用创建 AsyncTask 吗?或者有可能使它更通用?我真的不认为为每种方法创建 AsyncTask 是正确的方法。它使代码变脏。

有任何想法吗?我非常感谢您提供的任何解决方案。

4

0 回答 0