博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Application
阅读量:5067 次
发布时间:2019-06-12

本文共 1744 字,大约阅读时间需要 5 分钟。

简单说一个apk文件就是一个Application.

通常我们是不需要指定一个Application的,这时系统会自动帮我们创建,如果需要创建自己 的Application,也很简单创建一个类继承 Application并在manifest的application标签中进行注册(只需要给Application标签增加个name属性把自己的 Application的名字定入即可)。
android系统会为每个程序运行时创建一个Application类的对象且仅创建一个,所以Application可以说是单例 (singleton)模式的一个类.且application对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期。因为它是全局的单例的,所以在不同的Activity,Service中获得的对象都是同一个对象。所以通过Application来进行一些,数据传递,数据共享 等,数据缓存等操作。
其实在android.app.Application这个包的onCreate才是真正的Android入口点,只不过大多数开发者无需重写该类
application是用来保存全局变量的,并且是在package创建的时候就跟着存在了。所以当我们需要创建全局变量的时候,直接在application中去实现

 

如下我们在Manifest文件中,对application增加name属性,<application android:name=".rxmapp"

然后创建类rxmapp继承自Application。

public class rxmapp extends Application {    public String globTxt="default-rxm";    public String getGlobTxt() {        return globTxt;    }    public void setGlobTxt(String globTxt) {        this.globTxt = globTxt;    }}

然后添加两个Activity,分别拥有相同的控件,并后台实现相同代码,然后我们可以看到两个Activity公用了同样的数据。

private TextView tv;    private EditText et;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main_activity2);        tv= (TextView) findViewById(R.id.txtView);        et= (EditText) findViewById(R.id.editView);        findViewById(R.id.btnStartOther).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                ((rxmapp) getApplicationContext()).setGlobTxt(et.getText().toString());                tv.setText("全局数据是:" + ((rxmapp) getApplicationContext()).getGlobTxt());            }        });    }

通过在Manifest文件中对Activity注册时,添加同样的android.intent.category.LAUNCHER,可让程序有两个入口。

 

转载于:https://www.cnblogs.com/hometown/p/4634426.html

你可能感兴趣的文章
C# Async与Await的使用
查看>>
Mysql性能调优
查看>>
iOS基础-UIKit框架-多控制器管理-实例:qq界面框架
查看>>
自定义tabbar(纯代码)
查看>>
小程序底部导航栏
查看>>
ibatis学习笔记
查看>>
18-ES6(1)
查看>>
poj1611 简单并查集
查看>>
Ubuntu 14.04下安装CUDA8.0
查看>>
跨平台开发 -- C# 使用 C/C++ 生成的动态链接库
查看>>
C# BS消息推送 SignalR介绍(一)
查看>>
WPF星空效果
查看>>
WPF Layout 系统概述——Arrange
查看>>
PIGOSS
查看>>
几款Http小服务器
查看>>
iOS 数组排序
查看>>
第三节
查看>>
PHP结合MYSQL记录结果分页呈现(比较实用)
查看>>
Mysql支持的数据类型
查看>>
openSuse beginner
查看>>