Android服务与简单类的网络访问线程
关于如何解决我的网络接入问题,我陷入了两难的境地 我所有基于REST的请求都通过我自己的HttpRequestExecutor类路由,该类将异步执行每个请求,结果将通过每个请求传递给它的处理程序发送回 其中一些请求是从UI发起的,也需要在UI结束,例如登录请求。在大多数情况下,用户必须等到它完成。我想为每个用例编写一些高级和专门的类,因为它可以在执行请求之前和/或之后进行一些业务级别的处理。结果将传递给发起活动 这可以使用服务或简单的Java类来完成,两者都使用线程。我不知道该走哪条路 一个简单的Java类将是直截了当的简单解决方案,但我觉得服务可能是正确的方法。我真正关心的是使用服务时使用的锅炉板代码,即活页夹或消息传递与活动进行通信Android服务与简单类的网络访问线程,android,multithreading,android-service,Android,Multithreading,Android Service,关于如何解决我的网络接入问题,我陷入了两难的境地 我所有基于REST的请求都通过我自己的HttpRequestExecutor类路由,该类将异步执行每个请求,结果将通过每个请求传递给它的处理程序发送回 其中一些请求是从UI发起的,也需要在UI结束,例如登录请求。在大多数情况下,用户必须等到它完成。我想为每个用例编写一些高级和专门的类,因为它可以在执行请求之前和/或之后进行一些业务级别的处理。结果将传递给发起活动 这可以使用服务或简单的Java类来完成,两者都使用线程。我不知道该走哪条路 一个简单
对于这个问题,正确的解决方法是什么?在这种情况下,服务是否提供了一些额外的优势?在我看来,对于轻量级和短任务,使用Java多线程机制可能比Android服务更好 据我所知,谷歌建议在长时间连续的任务中使用服务。(例如,文件看门狗、基于网络的更新代理) 我自己通常在多线程任务中使用以下模式
// Bind a handler to the main thread.
Handler handler = new Handler();
new Thread(new Runnable(){
@Override
public void run(){
// Do the task
// Inform main thread, e.g. calling callbacks
handler.post(new Runnable(){
@Override
public void run(){
// Inform task requester here
}
});
}
}).start();
还有一些注意事项:
- 服务在主线程上运行
- 服务的任务完成后不会立即完成