मैंने डिस्कनेक्ट विधि पर डेटाबेस बदलने की कोशिश की। पृष्ठभूमि से कनेक्टिविटी उपलब्ध होने पर मैं डेटाबेस बदलना चाहता हूं। उदाहरण के लिए, मान लीजिए कि वर्तमान में मैं मेनएक्टिविटी में हूं और स्थिति ऑनलाइन है और ऑन पॉज़ और ऑनस्ट्रोय में यह ऑफ़लाइन हो जाती है। मेरी तरफ से ऑनलाइन/ऑफलाइन स्टेटस सेट करना ही काफी नहीं है। इसके लिए मैं चाहता हूँ

  1. अगर मेरे पास कनेक्टिविटी (पृष्ठभूमि और अग्रभूमि) है तो मेरी स्थिति ऑनलाइन है
  2. अगर मैंने पृष्ठभूमि में कनेक्टिविटी खो दी है, तो मेरी स्थिति ऑफ़लाइन है। और जब भी कनेक्टिविटी उपलब्ध होती है और ऐप किल्ड मोड में होता है, तो मेरा स्टेटस ऑनलाइन होता है। इस समाधान के लिए स्टैकओवरफ्लो मुझे ब्रॉडकास्ट रिसीवर का उपयोग करने का सुझाव देता है, लेकिन मुझे नहीं पता कि इस वर्ग का उपयोग कैसे करें
0
Vora 29 जुलाई 2019, 14:52

1 उत्तर

आप इस विधि का उपयोग कर सकते हैं। यह मेरे लिए ठीक काम करता है।

DatabaseReference connectedRef = FirebaseDatabase.getInstance().getReference(".info/connected");
connectedRef.addValueEventListener(new ValueEventListener() {
  @Override
  public void onDataChange(@NonNull DataSnapshot snapshot) {
    boolean connected = snapshot.getValue(Boolean.class);
    if (connected) {
      Log.d("FirasChebbah", "connected");
    } else {
      Log.d("FirasChebbah", "not connected");
    }
  }

  @Override
  public void onCancelled(@NonNull DatabaseError error) {
    Log.w("FirasChebbah", "Listener was cancelled");
  }
});
0
FZs 29 जुलाई 2019, 15:23