Android中Context的理解及使用(二)——Application的用途和生命周期
实现数据共享功能:
多个Activity里面,可以使用Application来实现数据的共享,因为对于同一个应用程序来说,Application是唯一的。
1、实现全局共享的数据App.java继承自Application:
public class App extends Application {
private String textData = "default";
public void setTextData(String textData) {
this.textData = textData;
}
public String getTextData() {
return textData;
}
}
并配置AndroidManifest.xml:android:name=".App"
2、创建类Main2继承自Activity(会在启动页面呈现两个图标,这两个Activity都是应用程序的入口),
并配置AndroidManifest.xml:
<activity android:name=".MainActivity" android:label="Main1">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <!--启动-->
</intent-filter>
</activity>
<activity android:name=".Main2" android:label="Main2">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
3、创建main1.xml和main2.xml,都是同一布局:
<TextView
android:text="展示保存的内容"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editText" />
<Button
android:text="保存"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btnSaveData" />
4、MainActivity.java和Main2.java的功能实现:
public class MainActivity extends AppCompatActivity {
private TextView textView;
private EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main1); //setContentView(R.layout.main2);
textView = (TextView) findViewById(R.id.textView);
editText = (EditText) findViewById(R.id.editText);
textView.setText("共享的数据是:"+getApp().getTextData());
findViewById(R.id.btnSaveData).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getApp().setTextData(editText.getText().toString());
textView.setText("共享的数据是:"+editText.getText().toString());
}
});
}
public App getApp(){
return (App)getApplicationContext();
}
}
Application的生命周期:
1、App.java文件:
public void onCreate() { //在创建的时候被执行
super.onCreate();
}
public void onTerminate() { //(一般情况下不会执行,只有在模拟环境下才执行)结束时执行
super.onTerminate();
}
public void onLowMemory() { //在低内存时执行
super.onLowMemory();
}
public void onTrimMemory(int level) { //程序在进行内存清理的时候执行
super.onTrimMemory(level);
}
public void onConfigurationChanged(Configuration newConfig) { //配置发生改变的时候执行
super.onConfigurationChanged(newConfig);
}
2、初始化操作:
Application 的onCreate函数会比被启动Activity的onCreate函数先执行:App的onCreate函数会比被MainActivity
或是Main2的onCreate函数先执行。
Android中Context的理解及使用(二)——Application的用途和生命周期的更多相关文章
- (四)Android中Context的理解与使用
一.Context的作用 Context可用于访问全局资源. public class MainActivity extends Activity { private TextView tv; @Ov ...
- Android中AIDL的理解与使用(二)——跨应用绑定Service并通信
跨应用绑定Service并通信: 1.(StartServiceFromAnotherApp)AIDL文件中新增接口: void setData(String data); AppService文件中 ...
- Android中Context的理解及使用(一)——Context的作用
Context的作用:用来访问全局信息的接口,通过Context进行资源的访问. 1.Context获取字符串资源: public class MainActivity extends AppComp ...
- Android中Context详解 ---- 你所不知道的Context(转)
Android中Context详解 ---- 你所不知道的Context(转) 本文出处 :http://b ...
- Android中Context的总结及其用法
在android中我们经常遇到这样的情况,在创建一个对象的时候往往需要传递一个this参数,比如:语句 MyView mView = new MyView(this),要求传递一个this参数,这个t ...
- Android中Context详解
大家好, 今天给大家介绍下我们在应用开发中最熟悉而陌生的朋友-----Context类 ,说它熟悉,是应为我们在开发中时刻的在与它打交道,例如:Service.BroadcastReceiver.A ...
- Android中Context详解 ---- 你所不知道的Context
转自:http://blog.csdn.net/qinjuning/article/details/7310620Android中Context详解 ---- 你所不知道的Context 大家好, ...
- 转:Android中Context详解 ---- 你所不知道的Context
转:http://blog.csdn.net/qinjuning/article/details/7310620 转:http://blog.csdn.net/lmj623565791/article ...
- Android中Context具体解释 ---- 你所不知道的Context
...
随机推荐
- python安装numpy、scipy和matplotlib等whl包的方法
最近装了python和PyCharm开发环境,但是在安装numpy和matplotlib等包时出现了问题,现总结一下在windows平台下的安装方法. 由于现在找不到了工具包新版本的exe文件,所以采 ...
- 8.dns服务的搭建
一.DNS的相关配置文件 /etc/hosts 本地主机列表 /etc/nssswitch.conf 本地主机查询方式 /etc/host.conf /etc/resolv.conf ...
- Android 强制设置横屏或竖屏 设置全屏
(转自:http://blog.csdn.net/yuejingjiahong/article/details/6636981) 强制横屏: @Override protected void onRe ...
- [转]C# 使用Nlog记录日志到数据库
本文转自:http://www.cnblogs.com/weixing/archive/2013/04/26/3044422.html 摘要]Nlog是一个很不错的.NET日志记录组件,它可以将日志输 ...
- java基础算法之快速排序
快速排序(Quicksort)是对冒泡排序的一种改进.在大学学过之后现在基本忘了,最近在好多地方都看到说快速排序在面试会问到,于是自己也准备重新拾起以前忘记的东西来,慢慢的积累自己的基础知识.figh ...
- S5PV210_流水灯
1.整体思路:把相应的配置数据写入相应的寄存器,控制GPIO电平(Led.s)——运用工程管理Makefile编译.链接文件(由Led.s编译得到led.bin,该文件用于USB启动方式点亮LED,若 ...
- 1869: Mathematics and Geometry
这是郑州轻工业学校的一次校赛的校内选拔赛,看名字是计算几何 的题 题目地址: http://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1869 Descript ...
- AC日记——最小的N个和 codevs 1245
1245 最小的N个和 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description 有两个长度为 N ...
- [No0000AA]Windows 系统环境变量列表
环境变量 详细信息 %ALLUSERSPROFILE% 所有用户 Profile 文件位置 %APPDATA% 应用程序数据的默认存放位置 %CD% 当前目录 %CLIENTNAME% 联接到终端服务 ...
- [LeetCode] Water and Jug Problem 水罐问题
You are given two jugs with capacities x and y litres. There is an infinite amount of water supply a ...