三个步骤,将全局对象保存在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开发过程中,我们常常需要在多个组件之间共享数据,例如存储用户的登录状态、应用配置等信息。通常情况下,开发者会利用`SharedPreferences`或者`...
1. 使用单例模式:创建一个单例类来保存全局变量,这样即使Application被回收,单例中的数据仍然可以保持。单例类应设计为静态内部类,以确保只有在首次使用时才会初始化。 2. 使用SharedPreferences:对于不需要...
在这个`MyApplication`类中,我们定义了一个静态成员`instance`来保存`Application`实例,以及一个`sharedValue`来存储全局变量。`onCreate()`方法用于初始化`instance`,并提供`getInstance()`方法以便在其他组件中...
`Application`类提供了一个全局环境,开发者可以在这个环境中进行全局变量的初始化、资源的加载等操作,而不局限于某个特定的Activity或Service。在标题"Android操作Application的代码例子"中,我们将探讨如何利用`...
// 使用全局变量或方法 ``` #### 三、总结 本文从Android的运行机制入手,重点介绍了Application类的重要性和使用方法。通过本文的学习,读者应该能够更好地理解和运用Application类,从而提升Android应用程序的...
在Android应用的开发中,开发者可以自定义一个名为`MyApplication`的类,继承自`Application`类,来存储全局变量或执行一些初始化操作。而"Activity"通常指的是继承自`android.app.Activity`的类,它们是用户界面的...
Application 组件为 Android 应用提供了强大的功能,可用于全局资源管理、数据共享与缓存等。正确地使用 Application 可以极大地提高应用的性能和用户体验。然而,在使用过程中需要注意内存泄漏等问题,合理规划数据...
- Application类在Android中作为一个全局单例,但它同样依赖于进程。进程被杀掉时,Application的实例也会被清空。尽管系统可以重建Application,但存储在其内部的数据将丢失,开发者需要自行处理这种情况。 5. **...
总结来说,理解并正确使用Context和全局变量是Android开发中的关键技能。合理选择Context类型可以避免内存泄漏,而自定义Application类则提供了方便的全局数据存储方案。在实际开发中,要根据需求选择合适的方法,并...
在Android开发中,`Application`类是一个至关重要的组件,它为开发者提供了一个全局保存数据的平台。本示例代码演示了如何在Android应用程序中自定义并使用`Application`类来实现特定的功能。`Application`是每个...
// 可能的全局变量或服务 private static MyGlobalApp instance; private SomeSharedData sharedData; @Override public void onCreate() { super.onCreate(); instance = this; // 初始化全局数据或服务 ...
本篇文章将详细介绍如何在Android中通过自定义Application类来实现全局Context的获取。 首先,我们需要创建一个自定义的Application类。在Java包`com.example.testapplication`下,创建名为`MyApplication`的类,...
Android 官方是推荐使用 Application 来保存全局对象的,这种数据共享方式应该不存在问题的,所以还是回归到分析问题本质的路线上来。 3. 分别取得 Android 2.3.5 和 4.0.3 上的 Heap dump,用 MAT 对比分析发现都不...
开发者可以重写`Application`类来添加自定义逻辑,如初始化全局变量、数据库连接或者网络服务。 在“ApplicationTest”中,我们主要关注的是对`Application`类及其扩展功能的测试。测试的主要目标是验证`...
在Android应用开发中,有时我们需要在多个Activity之间传递数据,特别是在用户登录之后,保存登录信息以便后续使用。本文将详细讲解如何利用`Application`类在两个不同的Activity间传递数据,并探讨这种做法在保存...
当我们需要在整个应用程序范围内共享数据、设置全局变量或者在应用启动时执行一些初始化操作时,就会用到Application类。 1. **概念解析**: - Android系统会在每个应用程序运行时创建一个Application类的实例,...
如果数据需要全局访问,可以创建自定义Application类或BaseActivity,将数据作为成员变量保存,然后在需要的地方进行读取。但这同样需要注意内存泄漏的问题。 七、EventBus和RxJava 对于复杂的事件传递,可以借助...
在这里,我们可以初始化全局变量、设置监听器等。在`HKBaseApplication`类中,我们看到有一个`activityList`用于存储所有活动(Activity)的引用,这是为了方便统一管理Activity的生命周期,比如在应用退出时一次性...
解决方案是修改代码,避免在Application中保存Activity的Context,改用更安全的方式来管理全局变量,如使用Singleton模式。 现象二:不同Android版本上内存问题的差异 这次问题出现在Android 2.3.5和4.0.3上,虽然...
在`Application`类中,我们可以定义一些全局变量,这些变量对于所有Activity都可见。例如,可以创建一个`User`对象来存储当前登录用户的账号信息: ```java public class MyApplication extends Application { ...