2016-06-10 11 views
5

मैं बहुत उत्सुक कैसे होती है 0 कोड आवेदन के भीतर लिखा हूँ करता है और जो कुछ आवश्यक है क्रम firebase क्रैश रिपोर्टिंग काम कर पाने के लिए पुस्तकालयकैसे Firebase दुर्घटना रिपोर्टिंग प्रारंभ

compile 'com.google.firebase:firebase-crash:9.0.1' 

उपयोग करने के लिए है। क्या प्रारंभिकरण हमेशा एक बार की बात है जैसे कि एप्लिकेशन क्लास 'ऑनक्रेट को हमेशा एक बार क्यों कहा जाता है?

यदि मैं किसी निश्चित घटना के बाद केवल क्रैश रिपोर्टिंग सक्षम करना चाहता हूं तो मैं क्या करूँ?

उत्तर

6

अद्यतन: अब how Firebase components initialize के बारे में एक व्यापक ब्लॉग पोस्ट है।

फायरबेस क्रैश रिपोर्टिंग (अन्य फायरबेस घटक के अतिरिक्त) एक सामग्री प्रदाता में प्रारंभ होता है जो आपके ऐप में स्वचालित रूप से शामिल होता है। ContentProviders पहले तत्काल होते हैं, फिर आपका एप्लिकेशन सबक्लास, फिर जो भी घटक लागू किया गया था (गतिविधि, सेवा, ब्रॉडकास्ट रिसीवर)।

जब आपकी परियोजना एंड्रॉइड लाइब्रेरी प्रोजेक्ट (एएआर फ़ाइल) पर निर्भर करती है, तो इसकी सभी मेनिफेस्ट प्रविष्टियां आपके ऐप में विलय हो जाती हैं, इसलिए आपको यह सामग्री प्रदाता आसानी से फायरबेस-क्रैश पर निर्भरता घोषित करके घोषित कर देता है।

मैंने Google I/O 2016 में एक बात दी कि यह सब कैसे काम करता है। क्रैश रिपोर्टिंग के लिए विशिष्ट सामग्री की शुरुआत के लिए Jump to 16:22

दुर्भाग्यवश वर्तमान में क्रैश रिपोर्टिंग को प्रोग्रामेटिक रूप से सक्षम या अक्षम करने का कोई तरीका नहीं है, लेकिन यह जल्द ही आ रहा है।

+0

मैं इसे जांचना सुनिश्चित करूँगा! तो प्रदाता भी एक बार शुरू कर रहे हैं? आपकी टिप्पणी से मुझे लगता है कि – gaara87

+0

हां, सभी सामग्री प्रदाता मुख्य प्रक्रिया की शुरुआत में केवल एक बार क्रिएट() पर जाते हैं। –

+0

मैंने अभी वीडियो देखा, इसे पूरी तरह से समझाया, धन्यवाद! मैं क्यों पूछ रहा था कि यह देखने के लिए कि सर्दी स्टार्टअप समय को कम करने के लिए एप्लिकेशन सब्सक्रास के अलावा कहीं और ऐप प्रारंभिक कोड रखने का विकल्प है या नहीं। मुझे लगता है, सामग्री प्रदाताओं में इसे शुरू करने से कमी में मदद नहीं मिलेगी? – gaara87

0

तो मूल रूप से जब मैं फ़ायरबेस क्रैश रिपोर्टिंग का उपयोग कर रहा हूं तो मुझे ContentProvider में प्रारंभ करने के लिए मजबूर होना पड़ता है। इस ऐप के कारण मेरे ऐप में 2 प्रक्रियाएं हैं और यदि मैं Application.onCreate में इनिट करता हूं तो इसे दो बार कहा जाता है - एक बार प्रत्येक प्रक्रिया के लिए। लेकिन अन्य प्रक्रियाओं में मेरे इनिट कोड की परवाह नहीं है इसलिए मैं इसे दो बार नहीं करना चाहता हूं। इसलिए मैं ContentProvider का उपयोग कर सकता हूं या वर्तमान प्रक्रिया का नाम देख सकता हूं। या शायद कुछ और है जो मुझे याद आ रही है?

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