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

相关文章
|
1月前
|
Android开发
Android调用相机与相册的方法1
Android调用相机与相册的方法
38 0
|
4天前
|
XML Java Android开发
利用Bundle实现Android Activity间消息的传递
利用Bundle实现Android Activity间消息的传递
11 2
|
7天前
|
机器学习/深度学习 Java Shell
[RK3568][Android12.0]--- 系统自带预置第三方APK方法
[RK3568][Android12.0]--- 系统自带预置第三方APK方法
33 0
|
4天前
|
Android开发 数据库管理
Android如何在Activity和Service之间传递数据
Android如何在Activity和Service之间传递数据
10 3
|
7天前
|
程序员 Android开发
Android亮度调节的几种实现方法
Android亮度调节的几种实现方法
9 0
|
7天前
|
Shell Android开发
Android Activity重写dump方法实现通过adb调试代码
Android Activity重写dump方法实现通过adb调试代码
13 0
|
7天前
|
Android开发
Android APP 隐藏系统软键盘的方法
Android APP 隐藏系统软键盘的方法
13 0
|
7天前
|
Android开发
Android中去掉ActionBar的几种方法
Android中去掉ActionBar的几种方法
11 0
|
21天前
|
安全 Java Shell
Android11以上 Audio音频调试方法
Android11以上 Audio音频调试方法
69 0
|
1月前
|
缓存 Android开发
Android——application全局类的使用
Android——application全局类的使用