感觉用这种方式存储登录信息比较好,比SharedPreferences存储登录信息的状态比较合适。
相当于存储session的数据(打个比喻)。
多个Activity中经常使用同一变量时,使用Bundle则比较麻烦,每次调用Activity都需要设置一次。如想在整个应用中使用,在java中一般是使用静态变量,而在android中有个更优雅的方式是使用Application context。
用SharedPreferences存储的话关闭应用的时候这个值还是最后一次设置的值,如果是非正常退出程序时登录状态就会有问题,所以在使用上感觉application context是最合适存储当前登录状态的信息,当然可是存储一些相当于session当中存储的值,因为关闭应用后这些值就没有了。
新建一个类,继承自Application
package org.mdx.core.modules;
import android.app.Application;
/**
*
* <p>
* Title: ApplicationHelper.java
* </p>
* <p>
* E-Mail: 176291935@qq.com
* </p>
* <p>
* QQ: 176291935
* </p>
* <p>
* Http: iaiai.iteye.com
* </p>
* <p>
* Create time: 2011-7-14
* </p>
*
* @author 丸子
* @version 0.0.1
*/
public class ApplicationHelper extends Application {
private boolean session_enter = false; // 默认为false
/**
* 设置session状态
*
* @param bol
* true为以登录,false未登录
*/
public void putSession(boolean bol) {
session_enter = bol;
}
/**
* 是否登录
*
* @return true是,false否
*/
public boolean isEnter() {
return session_enter;
}
}
在AndroidManifest.xml的application加个name属性就可以了,如下面所示:
<application android:name=".core.modules.ApplicationHelper"
android:icon="@drawable/icon" android:label="@string/app_name">
activity使用时:(这个是重点)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getApplicationContext().putSession(false); // 设置登录状态为退出
}
public ApplicationHelper getApplicationContext() {
return ((ApplicationHelper) super.getApplicationContext());
}
分享到:
相关推荐
总结,Activity跳转、Intent使用、startActivityForResult/onActivityResult以及通过Application Context实现共享数据是Android开发中的核心知识点。理解并熟练运用这些概念,可以帮助开发者构建功能丰富且健壮的...
在Android中,Intent不仅用于启动一个Activity,还可以承载数据进行传输。我们可以通过构造Intent对象,并通过putExtra()方法添加键值对,将数据绑定到Intent中。例如: ```java Intent intent = new Intent...
在`onCreate()`方法中,我们调用了`getApplicationContext()`来获取应用程序的全局Context,并将其存储在一个静态变量中。这样,即使在Activity或Service等组件之外,我们也能访问到这个全局的Context。 接下来,...
在Android开发中,当需要在不同的Activity之间共享数据时,有多种方法可供选择。这里主要讨论的是如何在多个Activity间共享一个持久化的状态,比如一个socket连接,这在处理网络通信时尤为常见。传统的Intent传递...
在Android应用开发中,`Application`对象是每个应用程序的基础组件,它是所有Activity、Service等组件的顶级父类。本篇笔记将深入探讨`Application`对象的使用,包括如何利用它进行数据传递以及如何避免常见的内存...
3. 使用静态成员变量或Application对象:适用于多个Activity间共享数据,但需谨慎处理生命周期。 4. 使用IntentService或BroadcastReceiver:适合跨进程通信。 通过上述方法,开发者可以创建丰富的用户界面,提高...
要在多个Activity之间共享变量,可以使用`Application`的`SharedPreferences`或创建一个公共的静态类。另一种方法是通过`Intent`传递数据。在示例中,推荐使用`Application Context`来创建全局变量。 7. **调整...
描述提到了“Android 多个Activity之间共享类(数据)——Application Context”,这表明我们将讨论的是使用ApplicationContext来实现跨Activity数据共享的一种方法。 ApplicationContext是Android应用中的全局上...
Context在Android开发中扮演着至关重要的角色,它是应用环境全局信息的接口,提供了与系统交互的各种方法,如启动Activity、广播、服务等。Context主要分为三类:Application、Activity和Service,它们都继承自...
Android中的Context, Activity,Application的区别 - **Context**:从字面意义上来讲,Context表示“上下文”。在Android中,它主要用于管理当前应用环境中的各种参数和变量,使得开发者能够方便地访问到各种资源...
这一联盟将会支持 Google 发布的 Android 手机操作系统或者应用软件,共同开发名为 Android 的 开 放源代码的移动系统。开放手机联盟包括手机制造商、手机芯片厂商和移动运营商几类。目前,联盟成员 数 量已经达到了...
- Context是Android中的环境变量,它是对应用程序运行环境的引用,提供访问系统服务和应用程序资源的方法。 6. **Activity状态保存**: - 利用Activity生命周期和Preference来保存状态,例如onSaveInstanceState...
- Application、Service和Activity的创建都会创建一个Context实例,总计数量等于Service的数量加上Activity的数量再加1(Application的Context)。 6. **内存泄漏问题**: - 长期持有Context引用会导致内存泄漏,...
- **一次性关闭所有Activity**:在Application类中管理Activity的列表,通过调用所有Activity的`finish()`方法一次性关闭。 #### 25. AIDL的工作原理 - **AIDL(Android Interface Definition Language)**:用于...
用 MAT 分析,发现自定义的 Application 对象中有个 List 聚集了大量的某个 Activity 的 Context 引用,导致该 Activity 占用的 Heap 内存泄漏。 解决方法: * 修改代码,使自定义的 Application 对象不再持有大量...
- **通过Context获取Android中的内部和外部数据存储目录**:了解应用程序的数据存储位置。 - **偏好设置文件的读写和偏好设置框架**:使用SharedPreferences保存简单的键值对数据。 - **创建和访问SQLite数据库**:...
- **定义**:Activity代表了应用程序中的一个屏幕,用于显示用户界面并处理用户的交互行为。 - **生命周期**:Activity具有明确的生命周期,通过一系列回调方法(如onCreate()、onStart()、onResume()等)来管理其...
"AABB获取Body"这个主题可能指的是在Android系统中如何获取并处理Android应用程序的Activity、Application、BroadcastReceiver以及Service(简称AABB)这四类组件的实例或状态。在Android应用开发中,这些组件是构建...
- **Context的不当使用**:如在静态变量中保存Context,可能导致Activity无法正常销毁。应尽量使用Application Context,或在适当的时候解除引用。 除此之外,面试中还可能涉及Android组件、性能优化、网络编程、...
从一个Activity跳转到另一个Activity时,必然会执行的方法有: - 当前Activity的`onPause()`和`onStop()`。 - 新Activity的`onCreate()`、`onStart()`和`onResume()`。 #### 1.8 Activity的四种启动模式对比及使用...