在我的 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 是正确的方法。它使代码变脏。
有任何想法吗?我非常感谢您提供的任何解决方案。