Android संपादन टेक्स्ट मेमोरी लीक




memory-leaks android-edittext (2)

इस विशेष दृश्य (जो कि किसी भी एंड्रॉइड शामिल है: टेक्स्ट इज़सचनीय = "सत्य" घटक) के लिए ऑन-क्रेतेव () में गतिविधि संदर्भ के बजाय अनुप्रयोग संदर्भ का उपयोग करने का प्रयास करें।

// Singleton
class MyApplication extends Application {
    private static MyApplication mApp;

    @Override
    public void onCreate() {
        mApp = this;
    }

    public static MyApplication getApp() {
        return mApp;
    }
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    // Suggested inflater use Activity Context
    // So we must tu use Application Context
    Context context = MyApplication.getApp().getApplicationContext();
    LayoutInflater myLayoutInflater = LayoutInflater.from(context);

    View view = myLayoutInflater.inflate(R.layout.my_view, container, false);
    return view;
}

किसी भी गतिविधि में संपादकीय नोटिफिकेशन नहीं देख रहे हैं, इसके एक बार भी उसके क्रियान्वयन के बाद भी एक गतिविधि के लिए एक मजबूत संदर्भ हो रहा है। इस संपादन टेस्ट को स्पष्ट करने के लिए एक लेआउट के अंदर है और फुलाया जाता है, कोई श्रोताओं सेट नहीं है। यह केवल कुछ उपकरणों पर होता है जैसे सैमसंग गैलेक्सी एस 4 (एंड्रॉइड 4.2.2) और अन्य इस बारे में कई पोस्ट अभी भी कोई समाधान नहीं है सबसे पहले यहाँ कुछ उपयोगी पोस्ट हैं (आखिरकार जीसी इस तरह से साफ नहीं करता है कि यह तकनीकी रूप से एक रिसाव नहीं है, लेकिन भारी मेमोरी ऐप के लिए यह लंबा रास्ता लेता है और ओओएम का कारण बनता है)

एंड्रॉइड सैमसंग मेमोरी रिसाव इनटेकटेक्स्ट

आइस क्रीम सैंडविच में इसकी ट्यूटोरियल के संदर्भ का पाठ क्यों बनाए रखता है

मेमोरी रिसाव के कारण संपादन टेक्स्ट

अप्रतिबंधित स्मृति रिसाव की संभावना

नोट किए गए समाधान सभी उपकरणों के लिए काम नहीं करते हैं यह एडिटेक्ट वॉचर के लिए नीचे आता है मैं समझता हूं कि इस नोटर को ओवरराइड करने में समाधान हो सकता है, फिर इसे डेस्टराय () पर साफ करने के लिए एक फ़ंक्शन होने पर। कृपया यहाँ कोई मदद, मैं इस दिन के लिए रहा हूँ

यहां मैट हिस्टोग्राम है


मैं एक बहुत लंबे समय के लिए इस स्मृति रिसाव के बारे में उलझन में था। लेकिन हाल ही में मुझे इस समस्या को ठीक करने के दो तरीके मिले।

  1. मुझे पता चला कि अगर आपके टेक्स्टव्यू / संपादन टेक्स्ट में android:hint संपत्ति, ऐसा नहीं हो सकता। इसलिए सबसे आसान तरीका हर पाठदृश्य / संपादन टेक्स्ट को संकेत संपत्ति देता है।

  2. सबसे सशक्त तरीका है TextLine पर प्रतिबिंबित करना और ChangeWatcher श्रोता को ढूंढना है, फिर इस श्रोता को मारना।






android-textattributes