【问题标题】:How to create a session object in an application如何在应用程序中创建会话对象
【发布时间】:2024-01-30 22:15:01
【问题描述】:

在我的应用程序中,我想创建一个用于登录和注销的会话。

我不知道如何使用会话。 任何人都可以通过提供一些示例来帮助我。

【问题讨论】:

  • 你为什么要尝试会话对象。您是否只是想在应用关闭之前将某些内容保留在内存中?
  • bcz 在我的应用程序中,我正在打开自己的网站。所以登录和注销会话是必需的。
  • 因此您正尝试将其与 Web 视图一起使用。您可能想要编辑该问题以包含信息。它会给你更多的答案。
  • 这是一个很好的例子,应该对你有帮助androidhive.info/2012/08/…

标签: android session android-webview


【解决方案1】:

我认为会话对象应该是在您的应用程序开始运行时声明和初始化的静态对象。我遇到了这个问题,并决定将我的会话对象放在一个 utils 类中,该类包含我的应用程序中每个活动使用的数学。

这是一个简短的例子:

  1. 为 utils 创建一个包含会话对象的类,Session 是您实现会话对象的类。例如,它可以包含 userId、userName 等:

    public class Utils {  
        public static Session mySessionObject = null;
    }
    
  2. 当登录按钮被按下时初始化你的会话对象:

    login.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Utils.mySessionObject = new Session();
           //some extra initalization, for example setting userId
        }
    });
    

注销时您可以销毁会话对象。

Here 是一个链接,提供有关会话的更多信息。

【讨论】:

  • 我想在登录后立即开始会话
  • 如果您通过单击按钮登录,则在单击按钮时初始化会话对象
  • 当然,我已将其添加到我的答案中。
  • 会话没有进入我的应用程序为什么?
  • “不接受我的应用”是什么意思?
【解决方案2】:

如果您想在应用程序的生命周期内将一些数据保存在内存中,也许您应该考虑使用单例模式。我就是这样用的。

public class Session {  

    @SuppressWarnings("unused")
    private GoogleAnalyticsTracker mGoogleAnalyticsTracker = null;

    private static Session sInstance               = null;

    private Session(Context pContext) {

        mGoogleAnalyticsTracker = GoogleAnalyticsTracker.getInstance();
        mGoogleAnalyticsTracker.startNewSession(pContext.getString(R.string.google_analytics_web_property_id), 
                                                pContext.getResources().getInteger(R.integer.google_analytics_tracking_time_in_seconds),
                                                pContext.getApplicationContext());
    }

    public static void init(Context pContext) {
        sInstance = new Session(pContext);
    }

    public static Session getInstance() {
        return sInstance;
    }
}

我在启动画面期间加载会话。请记住,使用此解决方案时,您不应将大对象保留在内存中。

Session.init(this);

例如,我将它用于 Google Analytics 跟踪器初始化、开发模式等

【讨论】: