如何知道用户是否 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,图像会在用户在线或不在线时亮起。谢谢。