我一直在互联网上搜索如何在Android应用程序中创建会话。我找到了this,这对我项目的一部分肯定有帮助。
目前,我有类似的情况,我有一个登录应用程序,要求用户输入用户名和密码。单击提交按钮,我创建并初始化我的Session对象。
我现在面临的问题是,除了我的登录应用程序活动之外,我想知道是否可以在各种活动中使用此对象。我还想知道,如果Session对象包含用户凭据,它是否可以通过Web服务发送并存储在远程数据库中?
答案 0 :(得分:1)
创建一个扩展Application
的类(不要忘记更新清单文件)并向其添加必填字段(用户名,密码等)。此课程将适用于您的所有活动。您可以找到详细解释here。
稍后编辑:
假设您有一个Session
课程,其中username
为字段。
class Session {
public String username = "";
}
接下来,扩展Application
:
class App extends Application {
Session session = new Session();
public String getUsername() {
return session.username;
}
public void setUsername(String username) {
session.username = username;
}
}
现在,当您想要访问用户名时,您可以从任何活动中执行此操作:
App app = (App) getApplication();
String username = app.getUsername();
if (username.equals("")) {
// the user is not logged in, do something
}
答案 1 :(得分:1)
如果需求是基本的,请尝试使用共享首选项。 http://developer.android.com/guide/topics/data/data-storage.html 如果你觉得有用,就投票并接受答案
答案 2 :(得分:0)
对不起,我可能已经很晚了,但我想介绍两点:
1 - 有多种方法可以存储在应用程序中随处可用的对象。您可以使用静态对象,Singleton设计模式,序列化等。每个选择都有其条件(主要与对象大小相关)
2 - 由于Android管理其应用生命周期的方式,不推荐@Gabriel Negut推出的上述接受的答案。使用新的Application对象还原应用程序时,可以抛出NullPointerException。 Philippe Breault对此有一个很好的article。