Junior
Ինչ է Handler-ը Android-ում?
sobes.tech AI
Պատասխան AI-ից
Handler - դա մեխանիզմ է Message և Runnable օբյեկտների ուղարկման և մշակման համար այն հոսքից, որը ստեղծում է Handler, մյուս հոսքին (կամ նույնին):
Այն թույլ է տալիս ծրագրել կոդի կատարմանը որոշակի հոսքում, նույնիսկ եթե դուք գտնվում եք այլ հոսքում: Handler կապված է Looper-ի հետ, որը մշակում է հաղորդագրությունների հերթականությունը հոսքում:
Հիմնական բաղադրիչներ՝
- Handler: Ուղարկում է հաղորդագրություններ և առաջադրանքներ, և մշակում դրանք կապված հոսքում:
- Looper: Սկսում է հաղորդագրությունների հերթականության մշակման ցիկլը որոշ հոսքի համար: Յուրաքանչյուր հոսք կարող է ունենալ միայն մեկ
Looper, բայց ոչ բոլոր հոսքերը ունեն դա ըստ default (օրինակ՝ գլխավոր հոսքը ունի): - MessageQueue: Հաղորդագրությունների հերթականությունը, կապված
Looper-ի հետ: - Message/Runnable: Օբյեկտներ, որոնք ուղարկվում են
Handler-ի միջոցով կատարման համար:
Հայտված կիրառություններ՝
- UI թարմացում ոչ-UI հոսքից:
- Թվային առաջադրանքների պլանավորում հետաձգմամբ կամ որոշ ժամանակում:
- Հաղորդագրությունների ուղարկում հոսքերի միջև:
// Օրինակ `Handler`-ի օգտագործում UI թարմացման համար ֆոնային հոսքից
Handler mainHandler = new Handler(Looper.getMainLooper()); // Գլխավոր հոսքի Handler- ը ստանում ենք
new Thread(() -> {
// Կատարում ենք երկարատև գործողություն ֆոնային հոսքում
String result = doBackgroundWork();
// Արդյունքը ուղարկում ենք գլխավոր հոսք UI թարմացման համար
mainHandler.post(() -> {
// Այս կոդը կիրականացվի գլխավոր հոսքում
updateTextView(result);
});
}).start();
private String doBackgroundWork() {
// Երկար աշխատանք սիմուլացնում է
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "Աշխատանքի արդյունք ֆոնում";
}
private void updateTextView(String text) {
// UI տարրն է թարմացվում
// someTextView.setText(text);
}