`
ericbaner
  • 浏览: 177464 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android 使用Application保存全局变量

 
阅读更多

三个步骤,将全局对象保存在Application进程。

 

1. 自定义Application对象

 

public class MyApp extends Application {

//在此保留有必要的全局数据对象,如登录态信息

private Map<String, Object> mData;

@Override

public void onCreate() {

super.onCreate();

mData = new HashMap<String, Object>();

//为多线程安全,同步化

mData = Collections.synchronizedMap(mData);

}

public Object getData(String key){

Object ret  = null;

if(mData != null){

ret = mData.get(key);

}

return ret;

}

public void setData(String key, Object data){

if (mData != null){

mData.put(key, data);

}

}

}

 

 

 

 

2.  修改AndroidManifest.xml文件:

Xml代码

<application android:name="MyApp" android:icon="@drawable/app" android:label="@string/app_name">

注意黑色粗体字标识的内容,指定程序使用我们自己定义的Application。

 

 

 

3、使用:

在其中一个activity中将数据保存到application中定义的map中

Java代码

MyApp app = (MyApp)getApplication();
app.put("key", "this is a test!");

然后在另一个activity中去获取数据:

Java代码

MyAppapp = (MyApp)getApplication();
String value =(String)app.get("key");
Toast.makeText(this, value, Toast.LENGTH_LONG).show();
分享到:
评论

相关推荐

    Android中用Application类实现全局变量

    ### Android中用Application类实现全局变量 在Android开发过程中,我们常常需要在多个组件之间共享数据,例如存储用户的登录状态、应用配置等信息。通常情况下,开发者会利用`SharedPreferences`或者`...

    Android-Application被回收引发空指针异常分析(消灭全局变量

    1. 使用单例模式:创建一个单例类来保存全局变量,这样即使Application被回收,单例中的数据仍然可以保持。单例类应设计为静态内部类,以确保只有在首次使用时才会初始化。 2. 使用SharedPreferences:对于不需要...

    android Application全局传值替代Intent

    在这个`MyApplication`类中,我们定义了一个静态成员`instance`来保存`Application`实例,以及一个`sharedValue`来存储全局变量。`onCreate()`方法用于初始化`instance`,并提供`getInstance()`方法以便在其他组件中...

    Android操作Application的代码例子

    `Application`类提供了一个全局环境,开发者可以在这个环境中进行全局变量的初始化、资源的加载等操作,而不局限于某个特定的Activity或Service。在标题"Android操作Application的代码例子"中,我们将探讨如何利用`...

    Android Application部分详解

    // 使用全局变量或方法 ``` #### 三、总结 本文从Android的运行机制入手,重点介绍了Application类的重要性和使用方法。通过本文的学习,读者应该能够更好地理解和运用Application类,从而提升Android应用程序的...

    android application

    在Android应用的开发中,开发者可以自定义一个名为`MyApplication`的类,继承自`Application`类,来存储全局变量或执行一些初始化操作。而"Activity"通常指的是继承自`android.app.Activity`的类,它们是用户界面的...

    Android Application

    Application 组件为 Android 应用提供了强大的功能,可用于全局资源管理、数据共享与缓存等。正确地使用 Application 可以极大地提高应用的性能和用户体验。然而,在使用过程中需要注意内存泄漏等问题,合理规划数据...

    浅谈Android中关于静态变量(static)的使用问题

    - Application类在Android中作为一个全局单例,但它同样依赖于进程。进程被杀掉时,Application的实例也会被清空。尽管系统可以重建Application,但存储在其内部的数据将丢失,开发者需要自行处理这种情况。 5. **...

    Android编程中context及全局变量实例详解

    总结来说,理解并正确使用Context和全局变量是Android开发中的关键技能。合理选择Context类型可以避免内存泄漏,而自定义Application类则提供了方便的全局数据存储方案。在实际开发中,要根据需求选择合适的方法,并...

    Application代码演示

    在Android开发中,`Application`类是一个至关重要的组件,它为开发者提供了一个全局保存数据的平台。本示例代码演示了如何在Android应用程序中自定义并使用`Application`类来实现特定的功能。`Application`是每个...

    android 全局实例

    // 可能的全局变量或服务 private static MyGlobalApp instance; private SomeSharedData sharedData; @Override public void onCreate() { super.onCreate(); instance = this; // 初始化全局数据或服务 ...

    Android编程获取全局Context的方法

    本篇文章将详细介绍如何在Android中通过自定义Application类来实现全局Context的获取。 首先,我们需要创建一个自定义的Application类。在Java包`com.example.testapplication`下,创建名为`MyApplication`的类,...

    android项目内存泄露排查实用.pdf

    Android 官方是推荐使用 Application 来保存全局对象的,这种数据共享方式应该不存在问题的,所以还是回归到分析问题本质的路线上来。 3. 分别取得 Android 2.3.5 和 4.0.3 上的 Heap dump,用 MAT 对比分析发现都不...

    ApplicationTest:这是对android的测试

    开发者可以重写`Application`类来添加自定义逻辑,如初始化全局变量、数据库连接或者网络服务。 在“ApplicationTest”中,我们主要关注的是对`Application`类及其扩展功能的测试。测试的主要目标是验证`...

    利用Application 在2个不同的Activity传递数据

    在Android应用开发中,有时我们需要在多个Activity之间传递数据,特别是在用户登录之后,保存登录信息以便后续使用。本文将详细讲解如何利用`Application`类在两个不同的Activity间传递数据,并探讨这种做法在保存...

    Android Application类的详细介绍

    当我们需要在整个应用程序范围内共享数据、设置全局变量或者在应用启动时执行一些初始化操作时,就会用到Application类。 1. **概念解析**: - Android系统会在每个应用程序运行时创建一个Application类的实例,...

    android实现activity直接的传值问题

    如果数据需要全局访问,可以创建自定义Application类或BaseActivity,将数据作为成员变量保存,然后在需要的地方进行读取。但这同样需要注意内存泄漏的问题。 七、EventBus和RxJava 对于复杂的事件传递,可以借助...

    Android application捕获崩溃异常怎么办

    在这里,我们可以初始化全局变量、设置监听器等。在`HKBaseApplication`类中,我们看到有一个`activityList`用于存储所有活动(Activity)的引用,这是为了方便统一管理Activity的生命周期,比如在应用退出时一次性...

    android项目内存泄露排查[收集].pdf

    解决方案是修改代码,避免在Application中保存Activity的Context,改用更安全的方式来管理全局变量,如使用Singleton模式。 现象二:不同Android版本上内存问题的差异 这次问题出现在Android 2.3.5和4.0.3上,虽然...

    Android Application存取公共数据的实例详解

    在`Application`类中,我们可以定义一些全局变量,这些变量对于所有Activity都可见。例如,可以创建一个`User`对象来存储当前登录用户的账号信息: ```java public class MyApplication extends Application { ...

Global site tag (gtag.js) - Google Analytics