主题概括:
Context ——– 翻译: 上下文
Activity的上下文对象(通常是指Activity)
Application —- 翻译: 应用
整个APP的上下文对象(通常指全局共享 )
可以理解为:
Context是当前页面对象
Application是当前软件对象
问题:
1.Application的作用是什么?
实现整个APP的全局数据共享(比页面传递更加的效率)
2.Applicatio 具体用法?
1.类的继承应用 封装变量
2.配置清单加入name
3.((APP)getApplication())对象的getset
下文案例:
为了验证效果,一个应用,加入了两个入口.
目的: 实现全软件数据共享
1.继承应用 封装变量
public class APP extends Application {
private String str="共享的数据:这是默认数据111!";
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
}
2.配置清单加入name
<application
android:name="com.example.jk_android61.APP"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
..........
..........
</application>
3.实例代码
文本默认显示共享内容
点击按钮后
输入框的数据传给共享
l
public class MainActivity2 extends Activity implements OnClickListener {
private TextView text1;
private EditText edit1;
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text1=(TextView) findViewById(R.id.text1);
edit1=(EditText) findViewById(R.id.edit1);
text1.setText("共享的数据是:"+((APP)getApplication()).getStr()); //1.默认显示 共享的数据
button=(Button) findViewById(R.id.butt1);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.butt1:
((APP)getApplicationContext()).setStr(edit1.getText().toString()); //2.共享数据 设置输入框内容
text1.setText("共享的数据是:"+edit1.getText().toString()); //3.文本显示: 输入框内容
break;
}
}
}
3.应用也是有生命周期的
应用 的创建方法在 页面 创建之前
参考资料:
博友博客: Application context和Activity context的区别
视频资料:极客学院Context