2010-06-30 6 views
7

मैं गतिविधि को नष्ट होने पर एक दृश्य में कुछ सफाई करना चाहता हूं। गतिविधि को नष्ट होने पर दृश्य में कॉलबैक प्राप्त करने का कोई तरीका है? मैंने onDetachedFromWindow का उपयोग करने की कोशिश की, लेकिन मुझे यकीन नहीं है कि यह सही काम है या नहीं।पता कैसे लगाएं कि दृश्य की मूल गतिविधि को नष्ट किया जा रहा है

उत्तर

1

समझने के साथ कि डेस्ट्रॉय को कॉल करने की गारंटी नहीं है, आप केवल डेस्ट्रॉय विधि पर गतिविधियों में अपने विचार में कॉलबैक कर सकते हैं।

टिप्पणी के जवाब में संपादित करें: आप इसे लेआउट में एक आईडी देकर औरViewById को कॉल करके कोई भी दृश्य प्राप्त कर सकते हैं।

Layout.xml (केवल न्यूनतम दिखा)

<LinearLayout> 
    <com.example.superwidget.DropDownTouchEnabledListView 
    android:id="@+id/special_list_view" /> 
</LinearLayout> 

MyActivity.java (फिर से, नंगे न्यूनतम और यह मानते हुए उचित आयात)

@Override 
void onDestroy() { 
    DownTouchEnabledListView v = (DownTouchEnabledListView)findViewById(R.id.special_list_view); 
    v.doCallback(with, parameters); 
} 
+0

क्या आप इस पर थोड़ा सा विस्तार कर सकते हैं। मेरा कस्टम व्यू क्लास एक अलग पैकेज का हिस्सा है और यह दृश्य लेआउट xml में परिभाषित किया गया है। तो गतिविधि वर्ग से कुछ देखने पर आविष्कार संभव नहीं है। – bhups

+2

"तो गतिविधि वर्ग से कुछ देखने पर आविष्कार करना संभव नहीं है।" यकीन से यही है। 'FindViewById()' पर कॉल करें, विजेट प्राप्त करें, इसे उचित कक्षा में डालें, और उस पर एक विधि कॉल करें। कहा जा रहा है, 'onDetachedFromWindow()' मुझे उचित विकल्प की तरह लगता है। – CommonsWare

+0

@ कॉमन्सवेयर आप संपादित कर सकते हैं जितना तेज़ी से टिप्पणी कर सकते हैं। :) बीटीडब्ल्यू, आपके द्वारा किए गए सभी कार्यों के लिए धन्यवाद। आपकी किताबें/कोड/उत्तर मेरे लिए अमूल्य हैं। –

6

आप प्राप्त करना चाहते हैं: यहाँ एक उदाहरण है View.onDetachedFromWindow() विधि को अधिभारित किए बिना कॉलबैक, आप View.addOnAttachStateChangeListener() विधि का उपयोग कर सकते हैं, जो एक कॉलम श्रोता को एक पैरामीटर के रूप में लेता है।

+1

केवल एपीआई> 12 के लिए –

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