1.Activity有一个叫onCreate的方法。该方法是在Activity创建时被系统调用,是一个Activity生命周期的开始。
onCreate方法的完整定义如下:
onCreate方法的完整定义如下:
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
}
super.onCreate(savedInstanceState);
}
Bundle类型的数据与Map类型的数据相似,都是以key-value的形式存储数据的。
savedInstanceState,是保存实例状态,也就是保存Activity的状态。savedInstanceState中的状态数据是从Activity的另一个方法onSaveInstanceState而来的。
onSaveInstanceState方法用来保存Activity的状态。当一个Activity在生命周期结束前,会调用该方法保存状态到savedInstanceState。
public void onSaveInstanceState(Bundle savedInstanceState){
super.onSaveInstanceState(savedInsanceState);
}
super.onSaveInstanceState(savedInsanceState);
}
状态这个参数有很大的用途,比如:一个游戏在退出前,保存一下当前游戏运行的状态,当下次开启时能接着上次的继续玩下去。
2.Activity有个叫setContentView(R.layout.main)的方法。
R.layout.main是个布局文件。
setContentView就是设置该Activity采用R.layout下的main布局文件进行布局。
setContentView就是设置该Activity采用R.layout下的main布局文件进行布局。
使用setContentView可以在一个Activity中动态切换显示不同的界面。
3.Context描述的是一个应用程序环境的信息,即上下文。
应用程序创建Context实例的情况有如下几种情况:
1、创建Application 对象时, 而且整个App共一个Application对象
2、创建Service对象时
3、创建Activity对象时
2、创建Service对象时
3、创建Activity对象时
因此应用程序App共有的Context数目公式为:
总Context实例个数 = Service个数 + Activity个数 + 1(Application对应的Context实例)
总Context实例个数 = Service个数 + Activity个数 + 1(Application对应的Context实例)
final View v = new View(MainActivity.this);
把activity context传递给view,意味着view拥有一个指向activity的引用,进而引用activity占有的资源
把activity context传递给view,意味着view拥有一个指向activity的引用,进而引用activity占有的资源
4.invalidate()在UI线程中进行工作用来刷新View。比如在修改某个view的显示时,调用view.invalidate()才能看到重新绘制的界面。
View的onDraw()调用时机:
1、onDraw是在View初化完成之后开始调用
2、调用postInvalidate()或invalidate()后系统会重新调用onDraw方法画一次
5.Handler类
主要接受子线程发送的数据(sedMessage()方法传递Message对象,里面包含数据),并用此数据配合主线程更新UI。