Как я могу работать с объектами и потоками в Android? Я пытаюсь понять, есть ли способ использовать методы AsyncTask Class (doInBackground()
и onPostExecute()
) с объектами, а не с строками. Я также хотел бы взаимодействовать с пользовательским интерфейсом.
Есть ли хороший учебник для начала или любого намека?
благодаря
Вы можете подклассировать AsyncTask, как в следующем примере.
private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> {
protected Long doInBackground(URL... urls) {
int count = urls.length;
long totalSize = 0;
for (int i = 0; i < count; i++) {
totalSize += Downloader.downloadFile(urls[i]);
publishProgress((int) ((i / (float) count) * 100));
}
return totalSize;
}
protected void onProgressUpdate(Integer... progress) {
setProgressPercent(progress[0]);
}
protected void onPostExecute(Long result) {
showDialog("Downloaded " + result + " bytes");
}
}
В этом примере "URL" - это тип параметра, Long - это тип результата (передается onPostExecute()), а Integer - дополнительный индикатор прогресса. Тип параметра, тип выполнения и тип результата могут иметь тип "Пустота", если они не используются.
Вы можете найти этот пример и более подробное объяснение здесь
Взаимодействие с ui должно происходить в onPostExecute().