[英]Backendless - Persist Current User Login Information
我有两个活动。 第一个检查用户当前是否使用Backendless API登录....
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表示没有用户登录,我登录片段,登录,然后进入第二个活动。
我的问题是,当我关闭应用程序并重新启动它时,我会被带回登录片段。 请注意,我从未退出应用程序。 有没有办法坚持用户的登录? 例如,如果我关闭它后启动应用程序,我只是被带到第二个活动? 谢谢。
在您启动应用程序后,您需要以下内容:
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) {
...
}
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.