Junior — Middle
Qisqa muddatli vazifani bajarish uchun xizmatni alohida oqimda qanday bajarish mumkin?
sobes.tech AI
AIdan javob
Androidda qisqa muddatli vazifa uchun xizmatni alohida ipda bajarish uchun ko'pincha IntentService sinfi (garchi u eskirgan bo'lsa-da, konsept foydalidir) yoki o'z xizmatini yaratib, yangi ipni ishga tushiradi. Asosiy g'oya — asosiy UI ipini bloklamaslik.
IntentService bilan misol (eskirgan, ammo oddiy usul):
public class MyIntentService extends IntentService {
public MyIntentService() {
super("MyIntentService");
}
@Override
protected void onHandleIntent(Intent intent) {
// Bu yerda qisqa muddatli vazifa alohida ipda bajariladi
}
}
Agar oddiy Service ishlatsangiz, onStartCommand ichida yangi ipni boshlash mumkin:
public class MyService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
new Thread(() -> {
// Qisqa muddatli vazifa
stopSelf(); // Vazifa bajarilgach, xizmatni to'xtatamiz
}).start();
return START_NOT_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
Shunday qilib, xizmat ishini alohida ipda bajaradi, UI ni bloklamaydi va vazifa tugagach to'xtaydi.