首页 文章

上下文和活动的参考

提问于
浏览
0

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

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

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

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

哪个是从WebPage类获取Activity的引用的最佳方法?

2 回答

  • 0

    由于您的问题应该更加解释:

    您希望尽可能保持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;
        }
    }
    

    Old Answer

    使用非常通常的方式,不要担心内存泄漏 .

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

    在你的活动中

    webserver A = new webserver(this);
    
  • 1

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

相关问题