声明Activity
所有的activities必须在你应用程序的manifest文件中声明。没有这么做的话,会导致程序在运行时发生异常。activit的声明如下所示:
<activity android:name=”.TimeTrackerActivity” //这是个缩写,包名在<application>元素中定义。
android:label=”@string/app_name”>
<intent-filter>
<action android:name=”android.intent.action.MAIN”/> //声明这个activity是app的main activity。
<category android:name=”android.intent.category.LAUNCHER” />
</intent-filter>
</activity>
Activity的生命周期
Activities很短暂,它们被不停的创建和销毁。你通过继承Activity类和实现一系列系统调用的callbacks来创建一个Activity。
状态 |
说明 |
Resumed or Rumming |
Activity可见,用户可操作。 |
paused |
Activity可见,但不能被操作,当有些东西,例如对话框弹出时会有这种情况。 |
stopped |
activity不可见。当用户从当前的activity转到新的activity会有这种状态,通常系统会销毁你的activity来回收资源。如果一个app的所有activitie都出于这种状态,系统会杀掉整个app的进程。 |
当activity被初始化时,会调用onCreate方法。你应该在这个方法中完成对你activity的基础设置,包括绑定数据,设置布局,初始化线程等。你应该事先onPause(). onPause方法会在activity发生转换时触发,你可以通过这个方法保存用户录入的信息,以及任何改变。
当一个activity在三种状态中切换时,Activity类的回调函数会被触发。关于Activity,有两件事需要记住:
1、系统会在activity不可见的时候销毁你的activity。
2、回调函数在主线程运行,所以,你不能在这些回调函数中进行一些长时间运行或者计算复杂的操作。
Activity创建
在回调函数中,你必须要调用超类的实现,通过调用setContentView()来实现布局。
public class TimeTrackerActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//……………………
}
}