1) Я не недооцениваю, почему образцы Android почти используют AsyncTasks как частные внутренние классы. Я знаю, что это удобно сделать внутренним классом, но это делает наш файл класса длиннее и труднее читается . Пример приложения ShelvesActivity of Shelves насчитывает 845 строк. Вам не кажется, что это плохой дизайн или плохая конструкция?
2) Если я сделаю свой внешний класс ScanStorageTask, что мне нужно передать ему? Действие целиком или только используемые виджеты?
Пример: Если я должен использовать WebView, Button и ProgressBar в ScanStorageTask. Я использую это:
ScanStorageTask task = new ScanStorageTask(this); // "this" is activity reference, then get the webView, button, progressBar from it.
или это:
ScanStorageTask task = new ScanStorageTask(webView, button, progressBar);