2016-11-22 4 views
-1

Im Erstellen einer Anwendung zu wissen, ob der Benutzer angemeldet ist oder online. Also zuerst habe ich eine Liste, dass die Leute, die sich registriert haben. Dies ist mein BeispielcodeWoher weiß man, ob der Benutzer online ist/mit parse eingeloggt ist?

query.findInBackground(new FindCallback<ParseUser>() { 
    @Override 
    public void done(List<ParseUser> objects, ParseException e) { 
     if (e == null) { 
      if (objects.size() > 0) { 
       for (ParseUser user : objects) { 
        usernames.add(user.getUsername()); 
       } 
       userListView.setAdapter(adapter); 
       // i want to add here like if(usernames.isOnline()) 
       // then the image adapter of list view will change to green 
       // instead of transparent 
      } 
     } else { 
      e.printStackTrace(); 
     } 
    } 
}); 

Vielen Dank. Ich möchte eine Liste der Benutzer haben, die online/offline sind. Ich werde jedes Tutorial schätzen, das Sie mir erzählen werden. anstelle der Abfrage

+0

wahrscheinlich existiert nicht als eingebaut .. Was Sie tun können, ist Timestamp der letzten Aktion und wenn es <1 Minute der Benutzer ist online .. Ich glaube nicht, dass Sie etwas besser als das tun können .. –

Antwort

0

ich meine Lösung bekam durch die Verwendung onResume() und onDestroy

private void updateUserStatus(boolean online) { 
    user.put("online", online); 
    user.saveEventually(); 
} 

@Override 
protected void onDestroy() { 
    super.onDestroy(); 
    updateUserStatus(false); 
} 

@Override 
public void onResume() { 
    super.onResume(); 
    loadUserList(); 
} 

public void loadUserList() { 
    ParseUser.getQuery().whereNotEqualTo("username", user.getUsername()) 
      .findInBackground(new FindCallback<ParseUser>() { 
       @Override 
       public void done(List<ParseUser> li, ParseException e) { 
        if (li != null) { 
         if (li.size() == 0) { 
          Toast.makeText(getApplicationContext(), 
            "No users found.", Toast.LENGTH_LONG) 
            .show(); 

          uList = new ArrayList<ParseUser>(li); 
          ListView list = (ListView) findViewById(R.id.userListView); 
          list.setAdapter(new UserAdapter()); 
         } 
        } 
       } 
      }); 

} 

Und durch die Adapter-Klasse, wird das Bild auf dem Weg und wenn der Benutzer online ist oder nicht. Vielen Dank.

0

könnten Sie

ParseUser.getCurrentUser() 

versuchen.

+0

Ich denke Er versucht eine Liste aller seiner Benutzer zu sehen. Und möchte für sie einen Status verbunden/nicht verbunden haben. – litelite

+0

Sie sind korrekt litelite. Danke für die Erklärung, was ich will. –

+0

Vergleichen Sie den Benutzer mit der Methode onBind des Adapters mit ParseUser.getCurrentUser() 'und passen Sie ggf. den Hintergrund an. –

Verwandte Themen