Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
AlexxeiS
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 5
#1

AsyncTask должен использовать Context - Программирование Android

16.04.2013, 13:53. Просмотров 1074. Ответов 1
Метки нет (Все метки)

Добрый день!

Мое приложение должно использовать сетевое соединение, вынесенное в отдельный поток. В этом потоке я выполняю POST запрос и пытаюсь записать результат в БД, но экземпляр класса создаваемый для работы с БД требует в качестве параметра переменную типа Context. Каким образом можно решить эту проблему? Возможно ли использовать параметр Context (AsyncTask<Context, Void, String>), если да, то как реализовать?

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class JsonRequest extends AsyncTask<Void, Void, String> {
 
    @Override
    protected String doInBackground(Void... noargs) {
        return POSTreq();
    }
 
    @Override
    protected void onPostExecute(String result) {
        JsonDataSource datasource = new JsonDataSource(this); //ошибка, т.к. нужен Context
        datasource.open();
        datasource.createJsonData(result);
        datasource.close();
    }
 
    private String POSTreq() {
     пост-запрос
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2013, 13:53     AsyncTask должен использовать Context
Посмотрите здесь:

AsyncTask - Программирование Android
Привет. Знаю, что в AsyncTask doInBackground() обращатся к компонентам UI нельзя. Когда я пытаюсь обновить вывод (в EditText) в...

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

AsyncTask - Программирование Android
Использую AsyncTasc class MyT extends AsyncTask&lt;Void, Void, Void&gt; { @Override protected Void doInBackground(Void......

AsyncTask и get() - Программирование Android
Создаю асинхронный процесс, где в onPreExecute() запускаю анимированный ProgressDialog. После выполнения задачи нужно выполнить действия....

Работа с AsyncTask - Программирование Android
Попробовал использовать AsyncTask и возник вопрос. У меня есть несколько ф-й, которые парсят текстовые файлы и заполняют таблицы БД. ...

Exception в AsyncTask - Программирование Android
Доброго всем. Проблема вот в чем: периодически во время выполнения одного из потоков в AsyncTask вылетает следующее: 04-21...

Не работает AsyncTask - Программирование Android
Не работает AsyncTask , вот код: private void registerInBackground() { new AsyncTask() { @Override ...

AsyncTask+CheckBox - Программирование Android
Здравствуйте, интересует вопрос нужно в функцию AsyncTask послать несколько строк, в зависимости какие Чекбоксы чекнуты. Ну например: ...

AsyncTask и SQLite - Программирование Android
Здравствуйте! У меня в приложении есть БД SQLite, при нажатие на кнопку загрузки, приложение начинает в базу вносить записи. Структура...

AsyncTask тормозит - Программирование Android
Подскажите пожалуйста, делалю загрузку данных с сервера через asyncTask и возвращаются результат, а дальше делаю обработку этих данных во...

Отмена AsyncTask - Программирование Android
Привет. Есть такой код: @Override protected Void doInBackground(Void... params) { try { Interpret(Source.get()); }...

MainActivity AsyncTask - Программирование Android
Добрый вечер. Ребята тут небольшая проблема. Мне нужно Заполнить NavigatorDrawer (из базы). Почему когда я пытаюсь в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
16.04.2013, 14:21     AsyncTask должен использовать Context #2
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class JsonRequest extends AsyncTask<Void, Void, String> {
    private Context mContext;
 
    public JsonRequest(Context context) {
          mContext = context;
    }
 
    @Override
    protected String doInBackground(Void... noargs) {
        return POSTreq();
    }
 
    @Override
    protected void onPostExecute(String result) {
        JsonDataSource datasource = new JsonDataSource(mContext);
        datasource.open();
        datasource.createJsonData(result);
        datasource.close();
    }
 
    private String POSTreq() {
     пост-запрос
    }
}
 
 
JsonRequest task = new JsonRequest(context);
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru