当前位置: 首页 > article >正文

Android——Application

Application

Application是Android的一大组件,在App运行过程中有且仅有一个Application对象贯穿整个生命周期。

生命周期

    // App启动时调用
    @Override
    public void onCreate() {
        super.onCreate();
    }
    
    // App终止时调用(不一定),在应用开发中没什么意义
    @Override
    public void onTerminate() {
        super.onTerminate();
        Log.d(TAG, "onTerminate");
    }

    // 配置改变时调用,例如:从竖屏变为横屏
    @Override
    public void onConfigurationChanged(@NonNull Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        Log.d(TAG, "onConfigurationChanged");
    }

Application操作全局变量

适合在Application中保存的全局变量主要有下面3类数据:

  • 会频繁读取的信息,如用户名、手机号等。
  • 不方便由意图传递的数据,例如位图对象、非字符串类型的集合对象等。
  • 容易频繁分配内存而导致内存泄漏的对象,如Handler对象等。
public class MyApplication extends Application {
    private static MyApplication mApp;
    public HashMap<String, String> infoMap = new HashMap<>();

    public static MyApplication getInstance() {
        return mApp;
    }

    // App启动时调用
    @Override
    public void onCreate() {
        super.onCreate();
        mApp = this;
        Log.d(TAG, "onCreate");
    }
}
 mApp = MyApplication.getInstance();
 mApp.infoMap.put("name", nameInput.getText().toString());
 String name = mApp.infoMap.get("name");

案例代码


http://www.kler.cn/a/319615.html

相关文章:

  • 排序算法 - 冒泡
  • 密码学的基本原理
  • OpenGL ES 共享上下文实现多线程渲染
  • JSON-RPC-CXX深度解析:C++中的远程调用利器
  • 普通电脑上安装属于自己的Llama 3 大模型和对话客户端
  • MyBatis CRUD快速入门
  • 网红挣钱太容易了
  • 路由器全局配置DHCP实验简述
  • MySQL篇(视图)(持续更新迭代)
  • CANopen通讯协议笔记
  • 制作一个能对话能跳舞的otto机器人
  • SentencePiece进行文本分类
  • 大数据-147 Apache Kudu 常用 Java API 增删改查
  • 二进制位运算题
  • python库 | lxml库
  • Python_yield
  • 【项目实战】如何在项目中自定义错误码
  • VisualStudio编译时出现无法启动mt.exe
  • C++之spring
  • Codeforces Round 973 (Div. 2) C. Password Cracking
  • 抓取股票数据
  • 28岁打算转行靠谱么,这个年龄转行,有什么适合的行业么?
  • opencv滤波算法总结
  • Linux挂载命令
  • Docker 的安装部署与基本使用
  • Apache CVE-2021-41773 漏洞攻略