Junior
Androidдеги Handler деген эмне?
sobes.tech AI
AIден жооп
Handler — бұл Message және Runnable объектілерін Handler құратын ағыннан басқа бір ағынға (немесе сол ағынға) жіберу және өңдеу механизмі.
Ол кодтың орындалуын нақты бір ағынға жоспарлауға мүмкіндік береді, тіпті егер сіз басқа ағында болсаңыз да. Handler Looper-мен байланысты, ол ағындағы хабарламалар кезегін өңдейді.
Негізгі компоненттер:
- Handler: Хабарламалар мен тапсырмаларды жібереді және оларды байланысты ағында өңдейді.
- Looper: Белгілі бір ағын үшін хабарламалар кезегін өңдеу циклін іске қосады. Әр ағында тек бір
Looperболуы мүмкін, бірақ барлық ағындарда әдепкі бойынша жоқ (мысалы, негізгі ағында бар). - MessageQueue:
Looper-мен байланысты хабарламалар кезегі. - Message/Runnable:
Handlerарқылы жіберілетін және орындалатын объектілер.
Қолданбалар:
- UI-ды UI емес ағыннан жаңарту.
- Кешіктірумен немесе нақты уақытта тапсырмаларды жоспарлау.
- Ағындар арасында хабарламалар жіберу.
// Артқы жоспар ағынынан UI-ды жаңарту үшін Handler мысалы
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);
}