Acticity在用户看来是一个界面,而在程序开发者看来是一个java程序。

public class Activity extends ApplicationContext {
//Activity启动后第一个被调用的函数,常用来进行Activity的初始化,例如创建View、绑定数据或恢复信息等。
protected void onCreate(){}
//当Activity显示在屏幕上可见时,该函数被调用。
protected void onStart(){}
//当Activity获得焦点,能够与用户交互,接受用户输入时,该函数被调用。此时的Activity位于Activity栈的栈顶。
protected void onResume(){}
//当Activity失去焦点,进入暂停状态时,该函数被调用。一般用来保存持久的数据或释放占用的资源。
protected void onPause(){}
//当Activity不可见进入后台时,该函数被调用。
protected void onStop(){}
//当Activity回到前台,再次可见时,调用该函数。
protected void onRestart(){}
//在Activity销毁时,该函数被调用。
protected void onDestroy() {}
}
onCreate:在首次创建 Activity 时调用。系统向此方法传递一个 Bundle 对象,其中包含 Activity 的上一状态,不过前提是捕获了该状态,而后会调用onStart方法。(可以在此方法中执行所有正常的静态设置 ,比如:创建视图、将数据绑定到列表等等。)
onStart:在 Activity 即将对用户可见之前调用。而后如果Activity转入了前台就会调用onResume方法。 如果此时直接屏幕熄灭或者用户按下home键则会直接调用onStop方法,当然这种情况比较极端。
onResume:在 Activity 即将开始与用户进行交互之前调用。 此时,Activity 处于 Activity 堆栈的顶层,并具有用户输入焦点。当跳转另一个Activity,或者退出当前Activity后会调用onPause方法。
onPause:在系统即将开始继续另一个 Activity 时调用。 此方法通常用于确认对持久性数据的未保存更改、停止动画以及其他可能消耗 CPU 的内容,诸如此类。 它应该非常迅速地执行所需操作,因为它返回后,下一个 Activity 才能继续执行,所以不能执行耗时操作。而后正常情况下会调用onStop方法。但是有一种极端情况,就是如果这个时候快速让 当前Activity 返回前台,则会调用onResume方法。
onStop:在 Activity 对用户不再可见时调用。如果 Activity 被销毁,或另一个 Activity(一个现有 Activity 或新 Activity)继续执行并将其覆盖,就会调用此方法。而后如果 Activity 恢复与用户的交互,则会调用 onRestart 方法,如果 Activity 被销毁,则会调用onDestroy方法。
onRestart:在Activity被停止后再次启动时调用(即屏幕熄灭后再次回到app,按下home键后再次回到app),而后会调用onStart方法。
onDestroy:在 Activity 被销毁前调用,这是 Activity 收到的最后调用。 当 Activity 结束(对 Activity 调用了 finish 方法),或系统为节省空间而暂时销毁该 Activity 实例时,可能会调用它。 你可以通过 isFinishing 方法区分这两种情形。

onKeyDown(int keyCode,KeyEvent event)//对应按键按下事件
onKeyUp(int keyCode,KeyEvent event)//对应按键松开事件
onTouchEvent(MotionEvent event)//对应点击屏幕事件
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);//调用父类的onCreate()方法
setContentView(R.layout.main);//调用布局文件
......
}
}
AndroidManifest.xml文件是一个全局配置文件,每增加一个Activity,都需要在AndroidManifest.xml进行配置。方法:
- 为
元素添加相应的子元素。- 在
标签中有一个必选属性android:name:Activity类名。android:label指定应用程序列表中程序图标下方的文字,如Activity未指定该属性,系统会使用标签的android:label属性值来代替。android:icon属性值指定Activity对应的图标,如果未指定,则系统会使用标签的android:icon属性值来代替。
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
LinearLayout>
关于组件中的@string/hello :
可以将所有要显示的文字信息直接在values\strings.xml文件中进行配置:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, Hello!</string>
</resources>
关于组件中的
@+id/mytext:
@+id固定,表示给该组件创建一个ID,后跟的mytext表示组件名,作用是在java程序中通过组件id取得该组件,进行相关监听器和属性的配置。