जैसा कि हम जानते हैं कि एप्लिकेशन प्रदाता पर सामग्री प्रदाता लोड लोड होता है। लेकिन सामग्री प्रदाता लॉन्च होने से पहले मैं कुछ संचालन करना चाहता हूं। मैं इस ऑपरेशन को कैसे पकड़ूं? इससे पहले कि सामग्री प्रदाता के onCreate विधिमैं सामग्री प्रदाता को कैसे प्रारंभ करूं?
उत्तर
मुझे लगता है कि मुझे समाधान मिला है। Ive मेरी कस्टम अनुप्रयोग वर्ग और ओवरराइड attachBaseContext विधि
<application android:name=".ApplicationController" ...>
public class ApplicationController extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
// some of your own operations before content provider will launch
}
}
कहा जा सकता है लेकिन मैं कुछ कार्यों बनाने के लिए सामग्री प्रदाता का शुभारंभ करेंगे से पहले ... इससे पहले कि सामग्री प्रदाता के onCreate विधि
AFAIK ही कहा जाता है चाहता हूँ, यह संभव नहीं है। onCreate()
आपके ContentProvider
आपके कोड को फोर्क करने के कुछ क्षण बाद कोड चलाने के लिए पहला मौका होगा। onCreate()
को Application
पर भी बुलाया जाता है, अगर मैं सही ढंग से समझता हूं।
यह बहुत दुखी है। मैंने एप्लिकेशन के क्रिएट को ओवरराइड करने का प्रयास किया, लेकिन ऐसा लगता है कि सामग्री प्रदाता भी आवेदन के निर्माण पर पहले लोड करता है। उत्तर देने के लिए आपका शुक्रिया। – pleerock
मेरे समाधान call(Uri, String, String, Bundle)
एपीआई (हां, तो यह पूरी तरह से पार्श्व-संगत नहीं है) के उपयोग की आवश्यकता बनाया। लेकिन मेरे पास ContentProvider
है जो मुझे call
विधि के ओवरराइड में उपयोग करने से पहले तैयार करने के लिए तैयार है। फिर मैं अपने Application.onCreate()
में getContentResolver().call(BASE_URI, METHOD, null, Bundle.EMPTY)
करता हूं। अनिवार्य रूप से, यह मेरे Application
के निर्माण के बाद तक उस सामान को रोकता है, जिसे हम ContentProvider
के onCreate
स्वाभाविक रूप से करने की अपेक्षा करते हैं।
- 1. सामग्री प्रदाता
- 2. सामग्री प्रदाता
- 3. सामग्री प्रदाता
- 4. Content_URI सामग्री प्रदाता
- 5. सामग्री प्रदाता यूआरआई matcher
- 6. एक सामग्री प्रदाता
- 7. सामग्री प्रदाता उदाहरण SQLite
- 8. उपलब्ध सामग्री प्रदाता
- 9. सामग्री प्रदाता और सामग्री पर्यवेक्षक उदाहरण?
- 10. मैं एक कस्टम सदस्यता प्रदाता पर आरंभ कैसे कॉल करूं?
- 11. सामग्री प्रदाता INSTALL_FAILED_CONFLICTING_PROVIDER (सामग्री प्रदाता को एक अलग एपीके के रूप में स्थापित करना)
- 12. एंड्रॉइड - एसएमएस सामग्री प्रदाता पूछताछ?
- 13. थ्रेड-सुरक्षित सामग्री प्रदाता कैसे बनाएं?
- 14. सिंक एडाप्टर और सामग्री प्रदाता
- 15. "सामग्री-प्रदाता" और "SQLite डेटाबेस"
- 16. एंड्रॉइड सामग्री प्रदाता योग क्वेरी
- 17. एंड्रॉइड। सामग्री प्रदाता या डेटाबेस?
- 18. मैं जीपीएस और नेटवर्क प्रदाता के बीच कैसे स्विच करूं?
- 19. मैं एएसपी.NET सदस्यता प्रदाता के साथ खाता कैसे अक्षम करूं?
- 20. मैं सामग्री प्रकार को जूमला में कैसे सेट करूं?
- 21. मैं "प्रारंभिक सामग्री नहीं मिली" त्रुटि को कैसे ठीक करूं?
- 22. वेब प्रदाता से परिणाम लाने के लिए सामग्री प्रदाता?
- 23. मैं लूप के बिना हैश में मान कैसे प्रारंभ करूं?
- 24. मैं जावा में बाइट सरणी कैसे प्रारंभ करूं?
- 25. अनुप्रयोगों में सामग्री प्रदाता डेटा को प्रतिबंधित करने के लिए
- 26. एकाधिक सामग्री प्रदाता के लिए कर्सर लोडर
- 27. एंड्रॉइड, लाइब्रेरी प्रोजेक्ट में सामग्री प्रदाता
- 28. Android में कस्टम सामग्री प्रदाता का परीक्षण
- 29. सेवाओं के साथ एंड्रॉइड सामग्री प्रदाता
- 30. एंड्रॉइड सामग्री प्रदाता क्वेरी खंड में
यह इस समय काम कर सकता है, लेकिन मुझे नहीं पता कि यह संस्करणों में भरोसेमंद होगा या नहीं। – CommonsWare
यह 17 एपिस में बचे हुए)) शायद इस सुविधा में Google हमें इस ऑपरेशन के लिए कोई एपिस प्रदान करेगा, लेकिन अभी यह काम करता है। जवाब देने के लिए धन्यवाद! – pleerock
यह समाधान काम करता है, हालांकि यह पूरी तरह कार्यात्मक नहीं है। उदाहरण के लिए, 'Context.getMainLooper()' विधि 'null' देता है जब' Application.onCreate() 'से पहले बुलाया जाता है। – Michael