5

के साथ keepSynced() को संभालना मैं फ़ायरबेस रीयलटाइम डेटाबेस से कुछ डेटा के लिए keepSynced() के उपयोग पर विचार कर रहा हूं। मैं समझता हूं कि यह स्वचालित रूप से उन पथों को सिंक करेगा। लेकिन यह एंड्रॉइड लाइफसाइकिल से कैसे संबंधित है? यदि उपयोगकर्ता सभी गतिविधियों को छोड़ देता है (और सभी सामान्य श्रोताओं को डिस्कनेक्ट), तो क्या यह सिंक्रनाइज़ करना बंद कर देगा? मैं नहीं चाहता कि ऐप डेटा या बैटरी होग बन जाए।एंड्रॉइड पर पृष्ठभूमि पर और एफसीएम

दूसरी तरफ, एफसीएम अधिसूचना आने पर मैं कैश किए गए डेटा को अपडेट करना चाहता हूं। मैं कुछ सेवा लॉन्च कर सकता हूं जो फायरबेस से कनेक्ट होगा। मैं सभी पथों को सिंक करना चाहता हूं जो keepSynced() में हैं और सिंक होने पर इसे रोकें। मुझे यकीन नहीं है कि इसे कैसे प्राप्त किया जाए। पथों में से किसी एक को श्रोता बनाएं और सेवा को कुछ समय तक चलते रहें? सेवा समाप्त होने के बाद, क्या यह सिंक्रनाइज़ करना बंद कर देगा?

उत्तर

5

firebaser यहाँ

महान प्रश्न!

जब कोई सक्रिय गतिविधि नहीं होती है, तो ऑपरेटिंग सिस्टम किसी भी समय फ़ायरबेस डेटाबेस से कनेक्शन बंद कर सकता है। हमारे एसडीके इसे रोकने की कोशिश नहीं करते हैं, लेकिन फिर से सक्रिय होने पर फिर से कनेक्ट हो जाएगा।

जो आप अपने दूसरे पैराग्राफ में वर्णन कर रहे हैं वह है जिसे हम "सिंक टू पुश" कहते हैं, जहां आप डेटा के सिंक्रनाइज़ेशन को ट्रिगर करने के लिए पुश अधिसूचना (आमतौर पर एक मूक एफसीएम डेटा संदेश) भेजते हैं।

हमने पिछले साल के आई/ओ ऐप में ऐसा कुछ किया था, जबकि यह थोड़ा अधिक जटिल था जितना हम चाहते थे, यह बहुत अच्छा काम करता था। हमने उस मामले में कनेक्शन को स्पष्ट रूप से प्रबंधित किया, goOnline() और goOffline() (5 मिनट के बाद iirc) को कॉल किया। मुख्य सिंक कोड the IOSched github repo में पाया जा सकता है।

+0

उत्तर के लिए धन्यवाद, यह सहायक है। मेरे पास दो अनुवर्ती प्रश्न हैं: 1) आप कहते हैं कि "सिस्टम किसी भी समय कनेक्शन बंद कर सकता है"। यह ठीक है, लेकिन क्या आप अनुभव से जानते हैं कि आमतौर पर कितना समय लगता है? या अधिक महत्वपूर्ण बात यह है कि यह एक समस्या हो सकती है (बैटरी और डेटा खपत द्वारा मापा गया) 2) इसलिए यदि मैं पृष्ठभूमि सेवा शुरू करता हूं, तो goOnline() पर कॉल करें, और 5 मिनट के बाद ऑफलाइन() पर जाएं, यह उन पथों को सिंक करेगा जो चिह्नित हैं keepSynced() के रूप में? –

+0

1) नहीं, मैं इसके लिए एक सभ्य मीट्रिक प्राप्त करने में सक्षम नहीं था। 2) मैंने वास्तव में सोचा कि हमने ठीक से IOSched में किया है, लेकिन मुझे अभी इसके लिए विशिष्ट कोड नहीं मिल रहा है। : -/ –

+0

2) ठीक है, मैं कुछ प्रयोग करता हूं और आपको बताता हूं। –

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