如何知道用户是否 online/logged 在解析中?
How to know if user is online/logged in with parse?
我正在创建一个应用程序以了解用户是否已登录或在线。所以首先我有一个列表视图,显示注册的人。这是我的示例代码
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();
}
}
});
非常感谢。我想要一个 online/offline 的用户列表。我会很感激你告诉我的每一个教程。
你可以试试
ParseUser.getCurrentUser()
而不是查询。
我通过使用 onResume() 和 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());
}
}
}
});
}
并且通过适配器class,图像会在用户在线或不在线时亮起。谢谢。
我正在创建一个应用程序以了解用户是否已登录或在线。所以首先我有一个列表视图,显示注册的人。这是我的示例代码
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();
}
}
});
非常感谢。我想要一个 online/offline 的用户列表。我会很感激你告诉我的每一个教程。
你可以试试
ParseUser.getCurrentUser()
而不是查询。
我通过使用 onResume() 和 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());
}
}
}
});
}
并且通过适配器class,图像会在用户在线或不在线时亮起。谢谢。