Android 全局变量的使用

使用场景:

需要在多个activity或者service之间共享数据

1、自定义Application

public class DemoApplication extends Application { 
    private HashMap<String, Object> map = new HashMap<String, Object>(); 
         
    public void put(String key,Object object){ 
        map.put(key, object); 
    } 
         
    public Object get(String key){ 
        return map.get(key); 
    } 
}

2、修改AndroidManifest.xml文件:

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

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

3、使用:

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

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

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

DemoApplication app = (DemoApplication)getApplication(); 
String value =(String)app.get("key"); 
Toast.makeText(this, value, Toast.LENGTH_LONG).show();

注意,这里没有考虑并发问题,如果需要,可以在自定义的application中添加相关的同步代码来实现。

原文地址:https://www.cnblogs.com/a354823200/p/4048570.html