我有两项活动。第一个检查用户当前是否使用Backendless登录.
public void checkLogStatusOnSite(){
AsyncCallback<Boolean> isValidLoginCallBack = new AsyncCallback<Boolean>() {
@Override
public void handleResponse(Boolean aBoolean) {
Toast.makeText(getApplicationContext(), "Boolean is: " + aBoolean, Toast.LENGTH_LONG).show();
}
@Override
public void handleFault(BackendlessFault backendlessFault) {
Toast.makeText(getApplicationContext(), "Boolean Error: " + backendlessFault, Toast.LENGTH_LONG).show();
}
};
Backendless.UserService.isValidLogin(isValidLoginCallBack);
}
如果是,则启动第二项活动。如果没有,则启动登录片段。用户输入他们的信息,并被带到第二次活动。
当我一次使用这个应用程序时,一切都很好。它打开时,BackEndless API说没有用户登录,我访问了登录片段,登录,并被带到第二个活动。
我的问题是,当我关闭应用程序并重新启动它时,我会被带回登录片段。请注意,我从未从申请中注销过。是否有一种方法来持久化用户登录?例如,如果我在关闭应用程序后启动它,我只是被带到第二个活动?谢谢。
发布于 2016-06-13 09:49:36
当你在你的应用程序中输入之后,你想要这样的东西:
String currentUserObjectId = Backendless.UserService.loggedInUser();
if (currentUserObjectId != null && currentUserObjectId.length() > 0) {
try {
BackendlessDataQuery dataQuery = new BackendlessDataQuery();
dataQuery.setWhereClause("objectId = '" + currentUserObjectId + "'");
Backendless.Persistence.of(BackendlessUser.class).find(dataQuery, new AsyncCallback<BackendlessCollection<BackendlessUser>>() {
@Override
public void handleResponse(BackendlessCollection<BackendlessUser> response) {
List<BackendlessUser> users = response.getCurrentPage();
if (users != null && users.size() > 0) {
BackendlessUser user = users.get(0);
try {
Backendless.UserService.setCurrentUser(user);
} catch (BackendlessException e) {
...
}
...
https://stackoverflow.com/questions/37778653
复制相似问题