android:用application保存全局变量

一,创建application

代码:

package com.example.okdemo1;

import android.app.Application;
import android.content.res.Configuration;

import androidx.annotation.NonNull;

import java.util.HashMap;

public class MainApplication extends Application {
    //自身的实例保存
    private static MainApplication mApp;
    //全局变量保存
    public HashMap<String, String> infoMap = new HashMap<String, String>();
    //单例模式获取当前应用的唯一实例
    public static MainApplication getInstance() {
        return mApp;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        // 在这里执行全局初始化
        mApp = this;
    }

    @Override
    /**
     * This method is for use in emulated process environments.
     * It will never be called on a production Android device, where processes are removed by simply killing them;
     * no user code (including this callback) is executed when doing so。
     * 注意真机上永远不会被调用
     */
    public void onTerminate() {
        super.onTerminate();
    }

    @Override
    /**
     * 低内存时调用
     */
    public void onLowMemory() {
        super.onLowMemory();
    }

    @Override
    /**
     * 配置改变时调用 如竖屏变横屏
     */
    public void onConfigurationChanged(@NonNull Configuration newConfig) {
        super.onConfigurationChanged(newConfig);

    }
}

实际调用:

 

        //给按钮增加点击事件
        Button button2 = findViewById(R.id.button2);
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //写入数据
                HashMap<String, String> infoMap = MainApplication.getInstance().infoMap;
                infoMap.put("name", "王富贵");
                infoMap.put("id", "123");
            }
        });

        //给按钮增加点击事件
        Button button3 = findViewById(R.id.button3);
        button3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //读取数据
                HashMap<String, String> infoMap = MainApplication.getInstance().infoMap;
                Log.d("debug","用户名:"+infoMap.get("name"));
                Log.d("debug","id:"+infoMap.get("id"));
             }
        });

二,注册到AndroidManifest.xml

添加一行:

android:name=".MainApplication"

如下

 <application
        android:name=".MainApplication"
        android:allowBackup="true"

三,测试效果:

 

 

posted @ 2025-05-17 08:19  刘宏缔的架构森林  阅读(42)  评论(0)    收藏  举报