目录
Activity
活动的生命周期
一、Activity创建活动
Activity是andoird的四大组件之一,主要用来展示界面以及负责和用户的交互。Android采用的是逻辑和布局分离的策略,新建一个Activity需要创建类文件以及布局文件。
类文件:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
二、Activity的继承
创建的活动要继承Activity或Activity的子类,子类主要有:Activity, ActionBarActivity, AppCompatActivity。其中ActionBarActivity在5.0已经被废弃了,而在Android studio创建一个Activity默认继承的是AppCompatActivity。AppCompatActivity其实是为了低版本兼容提出来的。
布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="button1"/>
</LinearLayout>
应用中的所有组建都需要在AndroidManifest.xml中进行声明。活动使用Activity标签在application标签下声明。其中<action android:name="android.intent.action.MAIN" />和<category android:name="android.intent.category.LAUNCHER" />的作用是将该活动声明成主活动,这样在打开应用时,就会启动该活动。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Learning"
tools:targetApi="31">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
三、活动的生命周期
活动在其生命周期中会有四种状态。
1. 运行状态,当活动处于返回栈的栈顶,此时的活动就是运行状态。
2. 暂停状态,当活动不再处于栈顶,但是仍然可见时,活动就进入了暂停态。
3. 停止状态,当活动完全不可见时,就进入了停止状态,系统仍然会为这种活动保存相应的状态和成员变量,但是这并不是完全可靠的,当其他地方需要内存时,处于停止状态的活动有可能会被系统回收。
4. 销毁状态,当一个活动从返回栈中移除后就变成了销毁状态。系统会最倾向于回收处于这种状态的活动,从而保证手机的内存充足。
Activity有七个生命周期方法,如下图所示。它们贯穿了Activity的整个生命周期。
1. onCreated(),当活动被创建时,首先会调用该方法,在该方法中可以加载布局资源、绑定控件事件以及其他初始化操作。
2. onStart(),活动由不可见状态变为可见状态,会调用此方法。
3. onResume(),当活动可以和用户进行交互时,会回调此方法。
4. onPause(),当启动另一个活动时,会回此方法。
5. onStop(),当活动从可见状态变为不可见状态时,会回调此方法。
6. onDestroy(),在活动被销毁之前,会回调此方法。
7. onRestart(),这个方法在活动由停止状态变为运行状态前,会被回调,在onStart()之前执行。