Каква е разликата между Service
и IntentService
в Android?
Каква е разликата между AsyncTask
и IntentService
в Android?
Каква е разликата между Service
и IntentService
в Android?
Каква е разликата между AsyncTask
и IntentService
в Android?
1. Разлика между услуга и IntentService
Услуга: Това е основният клас за услугите на Android, който можете да разширите за създаване на всяка услуга. Тъй като услугата се изпълнява в нишката на потребителския интерфейс, тя изисква да създадете работеща нишка за изпълнение на нейната работа.
IntentService: това е подклас на Service
, който опростява работата ви. Той вече работи в работеща нишка и може да получава асинхронни заявки. Така че не е нужно да го създавате ръчно или да се притеснявате за синхронизирането. Можете просто да го разширите и да замените метода:
onHandleIntent(Intent intent)
където можете да управлявате всички входящи заявки.
Като разгледате документацията, можете да видите подробно какво IntentService
направи за теб:
onStartCommand()
отделно от основната нишка на вашето приложение.onHandleIntent()
реализация, така че никога да не се притеснявате за многопоточност.stopSelf()
.onBind()
, което връща нула.onStartCommand()
, което изпраща намерението към работната опашка и след това към вашето onHandleIntent()
изпълнение.Така че, ако имате нужда от повече контрол, можете да използвате класа Service
, но често за проста услуга най-доброто решение е IntentService
.
2. Разлика между AsyncTask и Service
Те са две различни понятия.
Услуга: може да бъде предназначена като дейност без интерфейс. Подходящ е за продължителни операции.
AsyncTask: е конкретен клас, който обвива работеща нишка (извършвайки операции във фонов режим), улеснявайки взаимодействието с нишката на потребителския интерфейс, без директно управление на нишки или манипулатори.
AsyncTask
и има документация за това. Опитах се да бъда кратък, просто посочвах разликите с Service
- person GVillani82; 23.11.2017
Накратко, услугата е по-широко изпълнение за програмиста, за да настрои фонови операции, докато IntentService е полезна за „задействане и забравяне“ операции, като се грижи за създаването и почистването на фонови нишки.
От документите:
Услуга Услугата е компонент на приложение, представляващ или желанието на приложението да извърши по-продължителна операция, без да взаимодейства с потребителя, или да предостави функционалност за използване от други приложения.
IntentService IntentService е базов клас за услуги, които обработват асинхронни заявки (изразени като намерения) при поискване. Клиентите изпращат заявки чрез извиквания на startService(Intent); услугата се стартира при необходимост, обработва всяко намерение на свой ред с помощта на работна нишка и се спира сама, когато работата й свърши.
Каква е разликата между IntentService и услуга ?