Application
2015-07-09 22:32
190 查看
简单说一个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。
然后添加两个Activity,分别拥有相同的控件,并后台实现相同代码,然后我们可以看到两个Activity公用了同样的数据。
通过在Manifest文件中对Activity注册时,添加同样的android.intent.category.LAUNCHER,可让程序有两个入口。
通常我们是不需要指定一个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,可让程序有两个入口。
相关文章推荐
- android AsyncTask和Handler对比
- 20150708 MyEclipse Hibernate Many To Many Mapping
- Android第一天
- 第一个Android程序 -- HelloAndroid(续)
- android得到控件的高度
- Xamarin Mono For Android、Monotouch 安装
- 13_Android的生命周期
- 13_Android的生命周期
- Android ListView分页,动态添加数据
- Android利用setLayoutParams在代码中调整布局(Margin和居中)
- android 使用代码实现 RelativeLayout布局
- Unity3d 光照贴图 LightMapping
- Android 布局学习
- Unity中触摸和鼠标操作的几个问题
- iOS 开发怎么入门?2
- iOS 开发中 SIGPIPE信号的分析跟处理
- [学习笔记—Objective-C]《Objective-C 程序设计 第6版》第十七章 内存管理和自动计数
- android自定义控件之extends某控件时,不同构造方法的调用情况分析。
- 用android:clipChildren来实现红心变大特效
- iOS 的本地化使用和创建过程