开发者社区> 一叶飘舟> 正文

Android中Activity共享变量的另一方法:Application context

简介:
+关注继续查看
 感觉用这种方式存储登录信息比较好,比SharedPreferences存储登录信息的状态比较合适。
相当于存储session的数据(打个比喻)。

多个Activity中经常使用同一变量时,使用Bundle则比较麻烦,每次调用Activity都需要设置一次。如想在整个应用中使用,在java中一般是使用静态变量,而在android中有个更优雅的方式是使用Application context。
用SharedPreferences存储的话关闭应用的时候这个值还是最后一次设置的值,如果是非正常退出程序时登录状态就会有问题,所以在使用上感觉application context是最合适存储当前登录状态的信息,当然可是存储一些相当于session当中存储的值,因为关闭应用后这些值就没有了。

package org.mdx.core.modules;

import android.app.Application;

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());
}

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【蓝桥Java每日一练】——9.回文链表
今天带来一道能检验链表基础的题,题目比较简单,但是想通过确实容易,但想使用更好复杂度的方法却不容易。
3 0
Android 权限大全
Android 权限大全 API 31新增 其他权限 Google权限大全传送门
1 0
【蓝桥Java每日一练】——7.至少是其他数字两倍的最大数
今天带来的每日一题,是昨天的每日一题——至少是其他数字两倍的最大数。
4 0
【蓝桥Java每日一练】——8.计算力扣银行的钱
【蓝桥Java每日一练】——8.计算力扣银行的钱
3 0
高频考题!数组中找重复数字(算法 NO.1)
本题来自 LeetCode 中国网站,属于算法面试中的一道经典高频考题。题解由 Doocs 开源社区 leetcode 项目维护者提供。
4 0
C语言基础知识(三)-程序设计结构、数组、字符串处理函数(下)
数组 一维数组 一维数组的定义 数组内存是连续的 数组的初始化 二维数组 二维数组的定义 二维数组的初始化 数组小结 字符数组和字符串 字符串结束标志(划重点) 字符串长度 实例 数组元素的查询 对无序数组的查询 对有序数组的查询 字符串处理函数 字符串连接函数 strcat() 字符串复制函数 strcpy() 字符串比较函数 strcmp()
4 0
JWT技术分享
Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准.该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。
3 0
位运算的惯用套路,都在这儿!(算法 NO.2)
本文所列题目来自 LeetCode 中国网站,属于算法面试中关于位运算的经典高频考题。题解由 Doocs 开源社区 leetcode 项目维护者提供。
2 0
+关注
1635
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载