कभी-कभी दो बार सोचना अच्छा होता है और अकेले स्थैतिक कोड विश्लेषण पर भरोसा नहीं करना चाहिए
एंड्रॉइड केटीएक्स कुछ एंड्रॉइड फ्रेमवर्क प्रकारों के लिए कोटलिन एक्सटेंशन फ़ंक्शंस का एक छोटा सा सेट प्रदान करता है । इनमें से एक कार्य है जिसे 2018 में पेश किया गया था और यह ब्लॉक का परिणाम देता है। इसके अलावा यह आमतौर पर Java -with-resources स्टेटमेंट के स्थान पर उपयोग किए जाने वाले कोटलिन StdLib कार्यान्वयन की नकल करने के लिए स्वचालित रूप से रीसायकल करता है।TypedArray.use {}
TypedArray
Closeable.use {}
try
कुछ समय बाद 2021 में एंड्रॉइड 12 के साथ , इंटरफ़ेस को TypedArray
लागू करने के लिए प्रकार शुरू हुआ Closeable
, close
मूल recycle
विधि के लिए एक उपनाम के रूप में एक विधि प्रदान करता है। इसलिए Closeable.use {}
इसका उपयोग सभी नए एंड्रॉइड प्लेटफॉर्म पर किया जा सकता है और चूंकि इसे आयात करने की आवश्यकता नहीं है, इसका उपयोग तब किया जाएगा जब TypedArray.use {}
स्पष्ट रूप से आयात नहीं किया जाएगा।
2022 में कभी-कभी, जब मेरी सभी परियोजनाओं को बिना किसी समस्या के कुछ समय के लिए 31+ के एंड्रॉइड एपीआई स्तर के साथ लक्षित और संकलित किया गया था , मैं कुछ दिनों के भीतर TypedArray.use {}
दो अलग-अलग परियोजनाओं के कोड में उपयोग करने में कामयाब रहा। चूँकि केवल तीन अक्षर और एक कर्ली ब्रैकेट टाइप करना आसान है, इसलिए मैंने ऑटो कम्प्लीट का उपयोग करने की जहमत नहीं उठाई और इसलिए Android KTX फ़ंक्शन को आयात नहीं किया। लिंटर शिकायत नहीं कर रहा था और सभी परीक्षण सफल रहे। केवल "पुराने" डिवाइस के साथ परीक्षण करने पर, सब कुछ अलग हो गया और फिक्स एक साधारण आयात था:
import androidx.core.content.res.use