Junior — Middle
Кыска мөөнөттүү тапшырманы аткаруу үчүн кызматты өзүнчө агымда кантип ишке ашырууга болот?
sobes.tech AI
AIден жооп
Android'de qısqa muddatli vazifa üçin hyzmaty aýratyn bir ipde ýerine ýetirmek üçin köplenç IntentService synpy ulanylýar (şeýle-de bolsa, ol köne bolupdyr, ýöne düşünje peýdalydyr), ýa-da öz hyzmatyňyzy döredip, täze ip başlatýarsyňyz. Esasy pikir, esasy UI ipini bloklamazlyk.
IntentService bilen mysal (köne, ýöne ýönekeý usul):
public class MyIntentService extends IntentService {
public MyIntentService() {
super("MyIntentService");
}
@Override
protected void onHandleIntent(Intent intent) {
// Bu ýerde gysga muddatli vazifa ýerine ýetirilýär
}
}
Eger adaty Service ulanylýan bolsa, onStartCommand içinde täze ip başlap bolýar:
public class MyService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
new Thread(() -> {
// Gysga muddatli vazifa
stopSelf(); // Vazifa tamamlanandan soň hyzmaty duruz
}).start();
return START_NOT_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
Şeýlelik bilen, hyzmat işini aýratyn bir ipde ýerine ýetirýär, UI-ni bloklamar we vazifa tamamlanandan soň durýar.