我想编写一个处理名为NetworkManager
的所有网络交互的类。所以使用这个类的实例我会有类似的东西:
NetworkManager nm = new NetworkManager();
...
nm.login(username, password);
...
但是,最好的方法是什么,这样一旦收到一些响应,这个网络管理员可以在UI线程上做些什么?在onClick样式事件上建模我认为这将是:
nm.getPicture(new NetworkListener() {
@Override
public void run(Picture p){
updateUI(p);
}
我不确定如何编写getPicture
方法和NetworkListener()类。
我不想使用AsyncTask
,因为这意味着我必须在MainActivity的不同部分编写服务器代码。我也考虑过一个广播公司和一个听众,但对于一次性活动来说这似乎太过分了。
答案 0 :(得分:1)
Checkout Retrofit(http://square.github.io/retrofit/)考虑集成网络类的一部分可能会有用。我不确定你是否会有多个类似的调用,但如果有的话,我建议你应用Observer模式,在那里进行调用并异步等待响应,但是,有一个很好的库来实现它,非常有文献记载,称为Otto(http://square.github.io/otto/)。