फ़ायरबेस के उपयोग से एक एंड्रॉइड एप्लिकेशन में, फायरबेस एक क्वेरी उत्तर देता है, तो मुझे पृष्ठभूमि में लंबे संचालन निष्पादित करने की आवश्यकता होती है। उदा .:फायरबेस एंड्रॉइड: ऑनडाटा चेंज() ईवेंट हमेशा मुख्य यूआई थ्रेड में निष्पादित किया जाता है?
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot data) {
dosomething very long. . .
then call a callback forUI thread
}
मुझे पता है कि firebase अतुल्यकालिक मोड में क्वेरी निष्पादित लेकिन onDataChange()
विधि भले ही मैं एक कस्टम पृष्ठभूमि थ्रेड में क्वेरी कॉल करने के लिए प्रयास करते हैं, हमेशा मुख्य यूआई थ्रेड में क्रियान्वित किया जा रहा है।
क्या कोई जानता है कि इस उपयोग के मामले को कैसे प्रबंधित किया जाए?
ठीक है अब यह स्पष्ट है। मैं सीधे asDataChange() विधि में एक async कार्य लॉन्च करूंगा, और यह कार्य अंत में कॉलबैक UI श्रोता को निष्पादित करेगा। – toofoo
क्या थ्रेड सेट करने का कोई तरीका है जहां आप कॉलबैक कार्रवाई वापस प्राप्त करना चाहते हैं? –
फ्रैंक, क्या आपके पास यह विचार दिमाग में है? उस थ्रेड का चयन करने में सक्षम होने के लिए जिसे आप फायरबेस कॉलबैक वापस करना चाहते हैं? –