Junior — Middle
Qısa müddətli tapşırıq üçün xidməti ayrıca bir iş parçacığında necə icra etmək olar?
sobes.tech Süni İntellekt
AI-dan cavab
Android-də qısa müddətli vəzifə üçün xidməti ayrı bir iş ipində icra etmək üçün tez-tez IntentService sinfi istifadə olunur (hətta köhnəlib, amma konsept faydalıdır) və ya öz xidmətinizi yaradıb yeni bir iş ipini başlatırsınız. Əsas fikir UI-nin əsas iş ipini bloklamamaqdır.
IntentService ilə nümunə (köhnəlib, amma sadə üsul):
public class MyIntentService extends IntentService {
public MyIntentService() {
super("MyIntentService");
}
@Override
protected void onHandleIntent(Intent intent) {
// Burada qısa müddətli vəzifə ayrı bir iş ipində yerinə yetirilir
}
}
Əgər adi Service istifadə edirsinizsə, onStartCommand içində yeni bir iş ipini başlada bilərsiniz:
public class MyService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
new Thread(() -> {
// Qısa müddətli vəzifə
stopSelf(); // Vəzifə tamamlandıqda xidməti dayandırırıq
}).start();
return START_NOT_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
Beləliklə, xidmət işi ayrı bir iş ipində yerinə yetirir, UI-ni bloklamır və vəzifə tamamlandıqda dayanır.