Android 背景和活动';s参考
我对我的应用程序的设计有一些问题,特别是从不同于主要活动的类中打开资产 我项目的这一部分是一个webserver,有两个类:webserver和WebPage。Web服务器具有以下方法:Android 背景和活动';s参考,android,android-activity,assets,android-context,Android,Android Activity,Assets,Android Context,我对我的应用程序的设计有一些问题,特别是从不同于主要活动的类中打开资产 我项目的这一部分是一个webserver,有两个类:webserver和WebPage。Web服务器具有以下方法: start()、get()、post()、send(WebPage)和一些构造函数 网页有两个变量:stringhead(HTTP头)和byte[]body(可以是文本或任何文件的内容)。 网页有一个方法,byte[]getFile(stringfilename),构造函数使用该方法将文件的字节保存在正文中。该
start()、get()、post()、send(WebPage)
和一些构造函数
网页有两个变量:stringhead
(HTTP头)和byte[]body
(可以是文本或任何文件的内容)。
网页有一个方法,byte[]getFile(stringfilename)
,构造函数使用该方法将文件的字节保存在正文中。该文件是一项资产
当活动启动时(onCreate()
),它会创建一个WebServer实例,调用start()并保持侦听状态。当服务器接收到GET请求时,它将对其进行解析,并使用文件名创建一个网页对象以打开资产。最后,WebServer只发送带有send(WebPage)的页面
从WebPage类中获取活动引用的最佳方法是什么?将其作为参数传递到构造函数中,或者添加一个方法,以便活动能够自行传递。因为您的问题应该得到更多解释:您希望尽可能保持Web服务器的通用性,以便它可以在Android和PC上工作 执行以下操作。创建通用Web服务器:
public class WebServer{
int port;
public WebServer(int port){
this.port = port;
}
////////bla bla bla
}
创建您的android Web服务器
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);
好啊所以,没有办法做相反的操作(例如,直接从网页类内部获取活动参考的指令)!?
getApplicationContext()
是否适合此用途?事实并非如此!你能解释一下为什么不想把它传递给构造函数吗?我会为Web服务器和网页提供一个更小、更通用的构造函数,比如:WebServer(int-port)
和WebPage(String-filename)
。此外,我会(尽可能多地)有一个“通用”Web服务器类,用于android和PC。但如果这是最好的解决方案,我想我会创建几个构造函数,有上下文参数和没有上下文参数。没关系!离开您的WebServer泛型类,创建DroidWebServer Extendes WebServer
,并向其添加相关构造函数?@supergiox供人们帮助您勾选他们的答案:)答案旁边有一个勾号!当有人回答正确时,请为他们打勾。。相信我