安卓四大组件(一)

266

「这是我参与11月更文挑战的第5天,活动详情查看:2021最后一次更文挑战

安卓的四大组件分别是Activity、Service、Broadcast Receiver、Content Provider。接下来分别对着四部分进行详细的接受

四大组件之Activity

一个Activity通常表现为一个可视化的界面,在Android开发中,Activity一定会接触到,深入了解它的生命周期十分重要,要掌握它是如何创建如何使用的。

Activity活动状态

一共有四种活动状态:

  • 运行状态:该Activity位于安卓活动栈的最顶端。
  • 暂停状态:指Activity失去焦点但仍然可见(该Activity被部分遮盖)
  • 停止状态:被另一个Activity完全覆盖。
  • 销毁状态:指该Activity被系统销毁。

Activity生命周期

  1. onCreate()

    在Activity创建时被调用,生命周期的开始。Activity的初始化,视图创建,view的绑定。

  2. onStart()

    Actiyity创建或从后台重新回到前台是执行。它和onCreate()方法主要用于初始化对象的工作。

  3. onResume()

    当Activity将开始与用户进行交互时调用。执行后表示当前活动这在运行中,活动处于活动堆栈的栈顶

  4. onPause()

    当另一个Activity进入到前台界面是会调用。在此期间对一些数据进行持久化并停止其他需要耗费cpu的操作。无论出现什么情况,导致程序突然死亡,onPause()一定会执行。 onSaveInstanceState()可以保存一些临时数据。

  5. onStop()

    如果该Activity不在UI的最顶端,就是完全被遮挡住看不见的时候会被调用,主要是资源的释放和回收。在此期间一般可以进行取消注册广播等操作,因为用户不可见。

  6. onDestory()

    Activity被销毁时调用。

具体流程详见如下示意图更清晰直观显示Activity的生命周期:

未命名文件 (1).png

Activity的启动

隐式启动

在AndroidManifest.xml文件中配置

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

只要知道被启动的Activity的action,就可以启动该Activity,不需要知道具体的类名和包名。

Intent intent = new Intent();
intent.setAction("android.intent.action.MAIN");
startActivity(intent);

显式启动

Intent intent = new Intent(MainActivity.this,HomeActivity.class);
startActivity(intent);
​
​
Intent intent = new Intent();
intent.setClassName(getPackageName(),getPackageName()+".HomeActivity");
startActivity(intent);