可以在Android中的各种活动中使用会话对象

时间:2011-11-09 10:44:50

标签: android session

我一直在互联网上搜索如何在Android应用程序中创建会话。我找到了this,这对我项目的一部分肯定有帮助。

目前,我有类似的情况,我有一个登录应用程序,要求用户输入用户名和密码。单击提交按钮,我创建并初始化我的Session对象。

我现在面临的问题是,除了我的登录应用程序活动之外,我想知道是否可以在各种活动中使用此对象。我还想知道,如果Session对象包含用户凭据,它是否可以通过Web服务发送并存储在远程数据库中?

3 个答案:

答案 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