Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 背景和活动';s参考_Android_Android Activity_Assets_Android Context - Fatal编程技术网

Android 背景和活动';s参考

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),构造函数使用该方法将文件的字节保存在正文中。该

我对我的应用程序的设计有一些问题,特别是从不同于主要活动的类中打开资产

我项目的这一部分是一个webserver,有两个类:webserver和WebPage。Web服务器具有以下方法:
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供人们帮助您勾选他们的答案:)答案旁边有一个勾号!当有人回答正确时,请为他们打勾。。相信我