2013-04-18 9 views

उत्तर

14

कि जांच करने के लिए किया गया है postDelayed() या नहीं बुलाया गया था हो सकता है?

विधि में एक त्वरित फिक्स, boolean वैरिएबल को सत्य पर असाइन करें और फिर जांच करें।

17

इसे प्राप्त करने के लिए कोई प्रत्यक्ष API नहीं है लेकिन आप sendEmptyMessage फ़ंक्शन का उपयोग करके इसके लिए एक कार्य कर सकते हैं। उम्मीद है कि यह मदद करेगा।

handler.sendEmptyMessage(some_integer);//Do this when you add the call back. 
if(handler.hasMessages(some_integer)) 
handler.removeMessages(some_integer);//Do this after removing the call back. 
+0

है मैसेज() हमेशा मेरे कोड में झूठा लौटाता है। क्या यह काम करने की पुष्टि हुई है? – pmont

+0

हां वास्तव में हैंडलर.sendEmptyMessage (1); यह हैंडलर में एक खाली संदेश सेट करेगा ताकि जब आप कॉल करें (हैंडलर.hasMessages (1)) यह सच हो जाएगा। अगर आपने removeMessages (1) का उपयोग करके संदेश हटा दिया है तो यह झूठी – Triode

+4

है मैसेजेज (1) अभी भी sendEmptyMessage (1) जारी करने के तुरंत बाद मेरे लिए झूठा रिटर्न देता है। क्या आपने इस कोड को ऐप में इस्तेमाल किया है? – pmont

9

एक रननेबल पोस्ट करते समय हैंडलर "क्या" फ़ील्ड == 0 के साथ संदेश प्राप्त करता है, इसलिए सिद्धांत में आप hasMessages(0) पर कॉल कर सकते हैं, लेकिन आप यह जांच नहीं सकते कि उसने लंबित रननेबल दिया है - उदाहरण के लिए जब r0 और r1 पोस्ट करना आप चेक नहीं कर सकते अगर आर 0 लंबित है या नहीं।

संबंधित मुद्दे