मेरे पास हैंडलर थ्रेड है, जिसमें मैं हर 5 सेकंड में एक रननेबल पोस्ट करता रहता हूं। कुछ इस तरह:हैंडलर थ्रेड के लूपर को सुरक्षित रूप से कैसे छोड़ें
HandlerThread thread = new HandlerThread("MyThread");
thread.start();
Handler handler = new Handler(thread.getLooper());
handler.post(new Runnable() {
public void run() {
//...
handler.postDelayed(this, 5000);
}
});
मैं, कुछ बिंदु पर looper छोड़ने की 60 सेकंड या ऐसा ही कुछ होने के बाद की जरूरत है .. तो मैं लिखना:
mainHandler = new Handler(Looper.myLooper()); //main thread's
mainHandler.postDelayed(new Runnable() {
@Override
public void run() {
thread.getLooper().quit();
}
}, 60000);
मैं इस looper अचानक छोड़ने का कारण बनता है लगता है
डब्ल्यू/MessageQueue (3726): java.lang.RuntimeException: हैंडलर (android.os.Handler) {} 4823dbf8 एक मरे हुए पर एक हैंडलर के लिए संदेश भेजने, तो मैं हो रही इस "चेतावनी" संदेशों शुरू धागा
मैं यह त्रुटि संदेश से बचना चाहते हैं, मैंने सोचा कि मैं इसे Looper.quitSafely()
विधि का उपयोग कर हल कर सकते थे .. लेकिन मैं API की जाँच की और यह अब उपलब्ध नहीं है। क्या किसी को पता है कि इसके साथ क्या हुआ? (यह को कुछ अन्य तरीकों से वंचित नहीं किया गया है)।
क्या कोई तरीका है कि मैं लूपर को सुरक्षित रूप से छोड़ सकता हूं? धन्यवाद!
रोक handler.postDelayed भेजने (इस, 5000) Runnables – pskink
देरी एक झंडा या कुछ का उपयोग कर की तरह? – sundie
शायद आप thread.getLooper() को छोड़ सकते हैं। छोड़ें सुरक्षित()? – Richard