В android почему мы должны использовать asyntask и службу вместо использования нового потока() и записи необходимой функциональности фона?Почему мы должны использовать aysntask или службу вместо нового потока
Я знаю, что мы не должны запускать длительные операции, такие как загрузка файла с сервера на mainthread aka UI thread. И должен использовать асинтез или службу.
Но почему мы не создаем новый поток() {который, в конечном счете, является новым потоком, отличным от основного потока}, и записывать в этот поток обязательно длительную операцию.
Почему Google создала AsyncTask и службу, не предлагая использовать обычную новую тему() ???
заранее спасибо
edit1: может быть я не ясно, на мой вопрос или не уверен, если я, даже сейчас. выручи меня.
я получить его, все дело начинается с
Do not block the UI thread
Do not access the Android UI toolkit from outside the UI thread
почему? 1. Как много может обрабатывать поток пользовательского интерфейса? как мы можем определить точку останова? как определяется точка ANR? мы можем отслеживать?
2. Когда компонент службы обрабатывает длительные операции, почему не может обрабатываться компонент компонента активности?
Помните, что если вы используете службу, он по-прежнему работает в главном потоке вашего приложения по умолчанию, так что вы все равно должны создать новый поток внутри службы, если он выполняет интенсивные или блокирующие операции http://developer.android.com/guide/components/services.html выше заявление из документации по android.
3.Почему, возможно, начало службы в новой теме, если мы так обеспокоены основной нитью? не поймите меня неправильно в вопросе 3, я пытаюсь понять преимущество запуска службы в основной теме. по умолчанию.
В приведенном выше заявлении предлагается ли возможность основного потока запускать и обрабатывать длительную рабочую нагрузку службы? если это противоречит вопросу 1.
Это делает все намного проще. – hichris123
сервис абсолютно не связан. он не может заменить или заменить нить. они выполняют совершенно разные вещи. AsyncTask является оберткой вокруг Thread + Scheduler + runOnUiThread. – njzk2
Лучше всего прочитайте ** [Процессы и потоки] (http://developer.android.com/guide/components/processes-and-threads.html) ** в Android, которые должны ответить на ваш вопрос. –