Junior — Middle
Ինչպե՞ս կարող եք ծառայությունը կատարել առանձին թելում՝ կարճաժամկետ առաջադրանքը կատարելու համար։
sobes.tech AI
Պատասխան AI-ից
Android-ում կարճաժամկետ առաջադրանքի համար ծառայությունը տարբեր թելում գործարկելու համար հաճախ օգտագործվում է IntentService դասը (համենայն դեպս այն հնացել է, բայց կոնցեպցիան օգտակար է), կամ ստեղծում եք սեփական ծառայությունը, որի մեջ սկսում եք նոր թել։ Հիմնական գաղափարը՝ չխոչընդոտել գլխավոր UI թելին։
Օրինակ IntentService-ի օգտագործմամբ (հնացած, բայց պարզ միջոց՝
public class MyIntentService extends IntentService {
public MyIntentService() {
super("MyIntentService");
}
@Override
protected void onHandleIntent(Intent intent) {
// Այստեղ կատարվում է կարճաժամկետ առաջադրանք տարբեր թելում
}
}
Եթե օգտագործում եք սովորական Service, ապա onStartCommand-ի մեջ կարող եք սկսել նոր թել՝
public class MyService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
new Thread(() -> {
// Կարճաժամկետ առաջադրանք
stopSelf(); // Ծառայությունը դադարում է գործել ավարտից հետո
}).start();
return START_NOT_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
Այսպիսով, ծառայությունը կատարում է աշխատանքը տարբեր թելում, չի խոչընդոտում UI-ին, և ավարտվում է առաջադրանքի ավարտից հետո։