У меня есть проблема с Android AsyncTask. Существует Activity, в котором есть кнопка TextView a и изображение. Когда пользователь вводил это действие, я запускаю асинтезу, чтобы проверить, может ли пользователь перейти от активности (пока задача не завершит действие кнопки неактивно). Затем я хочу запустить еще один asyntask, чтобы получить изображение. Поэтому я сделал внутренний класс:
AsyncTask<String, Void, JSONObject>() authTask = new AsyncTask<String, Void, JSONObject>() {
@Override
protected JSONObject doInBackground(String... params) {
//call the rest api
}
@Override
protected void onPostExecute(JSONObject result) {
// check the result
// and make another asynctask
AsyncTask<String, Void, Bitmap> imageTask = new Async.... {
// get image
}
imageTask.execute();
}
}
и я звоню
authTask.execute();
из потока пользовательского интерфейса.
У меня плохое настроение по поводу этого, особенно кажется, что это не работает (это нормально несколько раз, но внезапно "замораживается": исключение не висит, а индикатор прогресса вращается. Ничего не происходит, и кнопка не будет активный.) Есть еще один способ получить информацию, и когда она закончится, сразу начнется другая задача?
UDPATE: Я работаю с api level 10. В authTask я получаю некоторую информацию, которая необходима для запуска imageTask (некоторый id), поэтому я должен вызывать эти задачи в строке. В api уровне 10 можно?
Спасибо заранее!
Бр, Питер