Her zaman iki işleyici oluşturur: biri ana iş parçacığına sarılırken, diğeri tek bir iş parçacığı üzerinde sarılır.Handlerthread'i durdurmak için bu en iyi yol mu?
Bunlar, bir Etkinlik yaşam döngüsünde bunları başlatmak ve durdurmak için en iyi yöntem midir?
HandlerThread safeThread = null;
Handler safeHandler = null;
Handler handler = null;
@Override
public void onStart() {
if (safeThread == null) {
safeThread = new HandlerThread("safeThread");
safeThread.start();
safeHandler = new Handler(safeThread.getLooper());
} else if (safeThread.getState() == Thread.State.NEW) {
safeThread.start();
safeHandler = new Handler(safeThread.getLooper());
} else if (safeThread.getState() == Thread.State.WAITING) {
safeHandler = new Handler(safeThread.getLooper());
} else if (safeThread.getState() == Thread.State.TERMINATED) {
safeThread = null;
safeThread = new HandlerThread("safeThread");
safeThread.start();
safeHandler = new Handler(safeThread.getLooper());
}
}
protected void onStop() {
Log.d("x", "onStop is executed");
safeHandler = null;
safeThread.quit();
safeThread.interrupt();
safeThread = null;
super.onStop();
}
Sen konuları durdurmak için güvenli bir yol olarak kullanabilirsiniz
safeThread.interrupt(); iş parçacığı – Sameer
durdurmak için en iyi yoldur, biliyorum, ama bunu düşündüğümde, bu kesildikten sonra bu güvenlidir. – rex
ben bir cevap verdim .. ben birileri yardım etmek istiyorum sonra onu bir oy vermek istiyorum ve cevabın en iyisi olduğunu düşünüyorsanız cevap olarak işaret istiyorum stackoverflow.IF yeni olarak size tavsiye ederim bir şey .. :) hoşgeldiniz ve Beğeniler – Sameer