手记

MogonBook_Android_Activity


一、Activity的功能
  • Activity负责Android应用的页面处理工作
  • 用来显示用户界面,并处理用户交互
  • 通常,一个界面对应一个Activity
  • 每一个Android应用都需要有一个入口Activity,其名称可以由开发者自行定义,但需要在AndroidManifest.xml中配置
  • 每个Activity都可以启动另一个或多个Activity,而每一个被启动的Activity都可以向启动它的Activity返回一些信息
  • 为了使用一个Activity,需要首先实现一个继承Activity的子类,并重写父类中的一些方法
  • 一般都会重写onCreate(),这个方法是在Activity被启动时自动调用的,我们可以把大多数的初始化工作放在这个方法中进行
  • 在onCreate()方法中,必须执行super.onCreate(saveInstanceState),否则Activity启动时会抛出一个异常
//AndroidManifest.xml
<application android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity" android:label="@string/app_name" >
                <intent-filter>
                        <action android:name="android.intent.action.MAIN" />
                        <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
        </activity>

        <activity android:name=".NewActivity" android:label="@string/app_name" ></activity>
</application>

//activity_main.xml
<Button android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="跳转"/>

//new_activity.xml
<Button android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="返回"/>
//MainActivity.java
public class MainActivity extends Activity {

    private Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        //必须要有此方法
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new OnClickListener() {

            @Override public void onClick(View v) {
                //第一个参数:当前页面.this,第二个参数:目标页面.class
                Intent intent = new Intent(MainActivity.this, NewActivity.class);
                //启动一个Activity视图 startActivity(intent);
            }
        });
    }
}

//NewActivity.java
public class NewActivity extends Activity {

    private Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.new_activity);
        btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new OnClickListener() {

            @Override public void onClick(View v) {
                Intent intent = new Intent(NewActivity.this,MainActivity.class);
                startActivity(intent);
            }
        });
    }
}

二、Activity的生命周期
  • onCreate:创建Activity实例对象的方法
  • onStart:启动当前的Activity实例的方法
  • onResume:如果该方法执行,页面的实例可以和用户进行交互
  • onPause:如果该方法执行,页面不在和用户交互,失去焦点,页面可见
  • onStop:页面和用户完全不可见
  • onDestroy:销毁当前的Activity的页面实例
  • onRestart:将置于后台的应用程序的Activity重新显示在前台的时候被调用,一般会连续调用onRestart---onStart---onResume
  • Activity的生命周期都是成对出现的,onCreate---onDestroy,onStart---onStop,onResume---onPause


三、Activity的四种状态
  • 运行态(Running):Activity处于屏幕最前端,用户可见且获得焦点
  • 暂停态(Paused):Activity被置于后台,用户可见,但失去了焦点
  • 停止态(Stopped):Activity被新的Activity覆盖,失去焦点,用户不可见
  • 终止态(Destroyed):Activity被系统终止,资源被回收

0人推荐
随时随地看视频
慕课网APP