我的应用程序设计存在一些问题,尤其是从类中打开资源,与主要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引用的最佳方法是什么?
答案 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)
将其作为构造函数中的参数传递,或添加方法以使您的活动能够自行传递。