यह यहाँ एक देर से जवाब है, लेकिन जब आप केवल हैंडलर (यानी ओपी के मामले में से runnables की एक विशिष्ट श्रेणी को हटाने के लिए, बंद एनीमेशन बस को निकालने के लिए एक अलग पद्धति है, कतार में अन्य runnables छोड़ने):
int firstToken = 5;
int secondToken = 6;
//r1 to r4 are all different instances or implementations of Runnable.
mHandler.postAtTime(r1, firstToken, 0);
mHandler.postAtTime(r2, firstToken, 0);
mHandler.postAtTime(r3, secondToken, 0);
mHandler.removeCallbacksAndMessages(firstToken);
mHandler.postAtTime(r4, firstToken, 0);
उपर्युक्त कोड केवल "आर 3" और फिर "आर 4" निष्पादित करेगा। यह आपको अपने टोकन द्वारा परिभाषित रननेबल्स की एक विशिष्ट श्रेणी को हटाने देता है, बिना रननेबल्स के किसी भी संदर्भ को रखने के लिए।
नोट: स्रोत कोड केवल "==" ऑपरेंड का उपयोग करके टोकन की तुलना करता है (यह .equals() को कॉल नहीं करता है), तो टोकन के लिए तारों के बजाय इंक/इंटीग्रर्स का उपयोग करना सबसे अच्छा है।
क्या अज्ञात रननेबल के लिए कॉलबैक को निकालना संभव है? –
मुझे ऐसा नहीं लगता ... आपको गैर-अज्ञात लोगों का उपयोग करना होगा। अन्यथा आप भविष्य में उन्हें संदर्भित नहीं कर पाएंगे। – Cristian
@ नामस्थान का उत्तर देखें। यदि आप एक टोकन के साथ रननेबल पोस्ट करते हैं तो आप लंबित रननेबल को हटा सकते हैं। या आप एक नल टोकन का उपयोग कर सभी कॉलबैक/संदेशों को हटाने के डैनियल एल की विधि का उपयोग कर सकते हैं। – vman