Intereting Posts
Android – внутреннее хранилище и внешнее хранилище, когда приложение установлено на SD-карте Сохраняйте плитки видимыми при загрузке TileOverlay Map API v2 Android Как анализировать данные JSON с помощью GSON? И помещаем его в ArrayList Как наложить тень на ScrollView? ParseInstallation.SaveAsync () вызывает UnhandledException на форматах Xamarin Android Использование libCEC + USB-ключа в приложении для Android Создание сложных XML-чертежей Android Android VideoView MediaPlayer OnInfoListener – события не запускаются Android: ширина и высота динамически созданного NetworkImageView возвращает ZERO Почему я получаю пустое пространство сверху и снизу своего ImageView в моем RelativeLayout? Замена фрагмента / вкладки в представлении Как отобразить мою схему прокрутки над клавиатурой? Android – Как избежать дублирования кода между действиями Android VMD MySQL вставляет и показывает диалог Android-соединение между хостом и последовательным интерфейсом USB?

Чтобы загрузить большой файл, который лучше подходит для использования AsyncTask или Thread?

Я нашел образец для загрузки большого файла данных по следующей ссылке: http://code.google.com/p/apps-for-android/source/browse/#svn/trunk/Samples/Downloader

Кажется, это довольно хорошо (я еще не тестировал его). Но я также прочитал некоторые сообщения в stackoverflow, чтобы сделать то же самое, используя класс AsyncTask, но не используя класс Thread как приведенный выше пример.

Я хочу знать, что я должен использовать для загрузки файла? И если AsyncTask лучше, вы бы указали мне пример кода?

Отказ от ответственности: я не разработчик Android, ответ приходит из общего опыта.

Класс Thread наиболее подходит для длительных действий, а не для асинхронных задач. За исключением случаев, когда вы управляете пулом работников, но все же срок службы нити такой же или почти такой же, как у приложения. Считайте, что создание потока – дорогостоящая операция.

AsyncTasks и другие помощники обычно используются для отдельных действий, которые вы хотите сделать в фоновом режиме, чтобы не блокировать приложение. Они, как правило, хорошо управляются платформой и дешевы.

Мое мнение: используйте AsyncTask, если вы хотите иногда загружать страницы. Если ваше приложение будет загружать страницы все время в фоновом режиме, рассмотрите поток.

Эти два варианта имеют равную вероятность быть убитыми во время загрузки (когда пользователь переключается на другое приложение). Тем не менее, AsyncTask меньше беспорядок. Для загрузки больших файлов используйте Service .

AsyncTasks в версиях Android до 3.0 использует пул потоков в фоновом режиме для выполнения задач, но в версиях после 3.0 для выполнения AsyncTasks используется один поток.

Если вам нужно сделать много запросов одновременно, а ваша версия Android выше 3.0, используйте пул потоков, но если вам нужно сделать только одну загрузку (не учитывая версию Android), используйте AsyncTask, это Будет выполняться в одном фоновом потоке без проблем, проще, чем управлять потоком самостоятельно.