上下文和活动的参考

时间:2011-08-09 23:40:46

标签: android android-activity assets android-context

我的应用程序设计存在一些问题,尤其是从类中打开资源,与主要Activity不同。

我项目的这一部分是一个网络服务器,有两个类:WebServer和WebPage。 WebServer具有以下方法: start(), get(), post(), send(WebPage)和一些构造函数;

WebPage有两个变量:String head(HTTP标头)和byte [] body(可以是文本或任何文件的内容)。 WebPage有一个方法byte[] getFile(String filename),构造函数用它来保存文件的正文字节。该文件是一种资产。

当Activity开始(onCreate())时,它会创建一个WebServer实例,调用start()并继续监听。当服务器收到GET请求时,它会解析它并使用文件名创建一个WebPage对象来打开资产。最后,WebServer只发送带有send(WebPage)的页面。

从WebPage类获取Activity引用的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

由于您的问题应该得到更多解释:您希望尽可能保持WebServer的通用性,以便它可以在Android和PC上运行。

执行以下操作。创建通用WebServer:

public class WebServer{
    int port;
    public WebServer(int port){
        this.port = port;
    }
    ////////bla bla bla
}

创建您的Android WebServer

public class AndroidWebServer extends WebServer{
    Context mContext;
    public webserver(Context mContext, int port){
        super(port);
        this.mContext = mContext;
    }
}

旧答案

使用非常常用的方法,不要担心内存泄漏。

public class webserver{
    Context mContext;
    public webserver(Context mContext){
        this.mContext = mContext;
    }
}

在您的活动中:

webserver A = new webserver(this);

答案 1 :(得分:0)

将其作为构造函数中的参数传递,或添加方法以使您的活动能够自行传递。