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
...
随机推荐
- 【MSSQL】MSSQL还原单mdf文件报1813错误
序: MS SQL Server 2008 r2附加无ldf日志的mdf数据库时报1813错误.提示数据库被强制分离,无日志不能还原之类的话. 可能的原因: 原因系统正在执行定时作业,没有主要到多次强 ...
- [iOS]技巧集锦:UICollectionView在旋转屏幕后Cell中的约束不起作用或自动布局失效
这似乎是iOS的一个BUG(ref: stackoverflow的大神们讲的) 解决方案 在继承自UITableViewCell的子类中的init方法中加入如下设置: self.contentView ...
- Jmeter实现登录bugfree、新建bug、解决bug脚本(抓包工具实现)
环境 Chrome jmeter3.1 fiddler4 win7 32位 Linux CentOs6.4 bugfree3.0.1 链接:http://pan.baidu.com/s/1gfHpbp ...
- python学习7
1.函数作为返回值 eg: 调用执行结果如下: 在函数lazy_sum中又定义了函数sum,并且,内部函数sum可以引用外部函数lazy_sum的参数和局部变量(eg:args),当lazy_sum返 ...
- javascript中的自执行函数
学习es6的时候遇到了自执行函数,感觉有必要写下来,一方面加深自己的记忆,另一方面还能分享给大家. 什么是自执行函数? 自执行函数就是为了不污染全局变量命名空间的一中匿名函数,相当于自己创建了一个作用 ...
- PAT 1042. 字符统计(20)
请编写程序,找出一段给定文字中出现最频繁的那个英文字母. 输入格式: 输入在一行中给出一个长度不超过1000的字符串.字符串由ASCII码表中任意可见字符及空格组成,至少包含1个英文字母,以回车结束( ...
- [LeetCode] Gray Code 格雷码
The gray code is a binary numeral system where two successive values differ in only one bit. Given a ...
- [开源].NET高性能框架Chloe.ORM-完美支持.NET Core
扯淡 这是一款轻量.高效的.NET C#数据库访问框架(ORM).查询接口借鉴 Linq(但不支持 Linq).借助 lambda 表达式,可以完全用面向对象的方式就能轻松执行多表连接查询.分组查询. ...
- MVC系列——MVC源码学习:打造自己的MVC框架(四:了解神奇的视图引擎)
前言:通过之前的三篇介绍,我们基本上完成了从请求发出到路由匹配.再到控制器的激活,再到Action的执行这些个过程.今天还是趁热打铁,将我们的View也来完善下,也让整个系列相对完整,博主不希望烂尾. ...
- docker 启动安装等命令
确认是否安装url whereis curl 启动docker服务: sudo service docker start sudo service docker stop 安装curl sudo ap ...