编写网络类的最佳方法

时间:2013-11-29 21:40:08

标签: java android

我想编写一个处理名为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的不同部分编写服务器代码。我也考虑过一个广播公司和一个听众,但对于一次性活动来说这似乎太过分了。

1 个答案:

答案 0 :(得分:1)

Checkout Retrofit(http://square.github.io/retrofit/)考虑集成网络类的一部分可能会有用。我不确定你是否会有多个类似的调用,但如果有的话,我建议你应用Observer模式,在那里进行调用并异步等待响应,但是,有一个很好的库来实现它,非常有文献记载,称为Otto(http://square.github.io/otto/)。