Контекст и ссылка деятельности - PullRequest
0 голосов
/ 10 августа 2011

У меня есть некоторые проблемы с дизайном моего приложения, особенно при открытии ресурсов из класса, отличного от основного Activity.

Эта часть моего проекта является веб-сервером, и существует 2 класса: WebServer и WebPage. WebServer имеет следующие методы: start(), get(), post(), send(WebPage) и некоторые конструкторы;

WebPage имеет 2 переменные: String head (заголовок HTTP) и byte [] body (контент, который может быть текстовым или любым файлом). В WebPage есть один метод, byte[] getFile(String filename), используемый конструкторами для сохранения байтов файла в теле. Файл является активом.

Когда начинается действие (onCreate()), он создает экземпляр WebServer, вызывает start () и остается в режиме прослушивания. Когда сервер получает запрос GET, он анализирует его и создает объект WebPage, используя имя файла для открытия ресурса. Наконец, WebServer просто отправляет страницу с помощью send (WebPage).

Каков наилучший способ получить ссылку на Activity из класса WebPage?

Ответы [ 2 ]

1 голос
/ 10 августа 2011

Поскольку ваш вопрос требует более подробного объяснения: вы хотите, чтобы ваш WebServer был как можно более универсальным, чтобы он работал на Android и на ПК.

Выполните следующие действия.Создайте свой общий 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);
0 голосов
/ 10 августа 2011

Передайте его в качестве параметра в конструктор или добавьте метод, чтобы ваша деятельность могла проходить сама.

...