Не знаете, какой параметр мне использовать?
Многие разработчики, в том числе и начинающие, испытывают трудности с написанием AsyncTask из-за неоднозначности параметров. Основная причина в том, что мы пытаемся запомнить параметры, используемые в AsyncTask. Ключ Не запоминайте . Если вы можете визуализировать, что на самом деле нужно делать вашей задаче, то написание AsyncTask с правильной подписью было бы просто.
Что такое AsyncTask?
AsyncTask - это фоновая задача, которая запускается в фоновом потоке. Он принимает входные данные, выполняет прогресс и выдает выходные данные.
т.е. AsyncTask<Input,Progress,Output>
Просто выясните, каковы ваши Входные данные, Прогресс и Выходные данные, и вам будет хорошо идти.
Например
Как doInbackground()
изменяется с AsyncTask
параметрами?
Как doInBackground()
и onPostExecute()
, onProgressUpdate()
связанные с?
Как написать это в коде?
DownloadTask extends AsyncTask<String,Integer,String>{
@Override
public void onPreExecute(){
}
@Override
public String doInbackGround(String... params)
{
// Download code
int downloadPerc = // calculate that
publish(downloadPerc);
return "Download Success";
}
@Override
public void onPostExecute(String result)
{
super.onPostExecute(result);
}
@Override
public void onProgressUpdate(Integer... params)
{
// show in spinner, access UI elements
}
}
Как вы будете выполнять это задание в своей деятельности?
new DownLoadTask().execute("Paradise.mp3");