展会信息港展会大全

Activity共享变量的另一方法:Application context
来源:互联网   发布日期:2016-01-14 10:09:49   浏览:2837次  

导读:感觉用这种方式存储登录信息比较好,比SharedPreferences存储登录信息的状态比较合适。相当于存储session的数据(打个比喻)。多个Activity中经常使用同一变量时,使用Bundle则比较麻烦,每次调用Activity都需要设......

感觉用这种方式存储登录信息比较好,比SharedPreferences存储登录信息的状态比较合适。

相当于存储session的数据(打个比喻)。

多个Activity中经常使用同一变量时,使用Bundle则比较麻烦,每次调用Activity都需要设置一次。如想在整个应用中使用,在java中一般是使用静态变量,而在android中有个更优雅的方式是使用Application context。

用SharedPreferences存储的话关闭应用的时候这个值还是最后一次设置的值,如果是非正常退出程序时登录状态就会有问题,所以在使用上感觉 application context是最合适存储当前登录状态的信息,当然可是存储一些相当于session当中存储的值,因为关闭应用后这些值就没有了。

01

package org.mdx.core.modules;

02

03

import android.app.Application;

04

05

public class ApplicationHelper extends Application {

06

07

private boolean session_enter = false; // 默认为false

08

09

/**

10

* 设置session状态

11

*

12

* @param bol

13

*true为以登录,false未登录

14

*/

15

public void putSession(boolean bol) {

16

session_enter = bol;

17

}

18

19

/**

20

* 是否登录

21

*

22

* @return true是,false否

23

*/

24

public boolean isEnter() {

25

return session_enter;

26

}

27

28

}

在AndroidManifest.xml的application加个name属性就可以了,如下面所示:

1

<application android:name=".core.modules.ApplicationHelper"

2

android:icon="@drawable/icon" android:label="@string/app_name">

activity使用时:(这个是重点)

1

@Override

2

protected void onCreate(Bundle savedInstanceState) {

3

super.onCreate(savedInstanceState);

4

getApplicationContext().putSession(false); // 设置登录状态为退出

5

}

6

public ApplicationHelper getApplicationContext() {

7

return ((ApplicationHelper) super.getApplicationContext());

赞助本站

人工智能实验室
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港