Android蒙逼之旅----核心组件Activity

来源:互联网 发布:鹏业软件网址 编辑:程序博客网 时间:2024/06/03 23:38

Activity-简介

Activity 是一个为用户提供用于任务交互的画面的程序组件。如打电话、发短信、看地图等应用的窗口。通常每一个Activity对应一个窗口,这个窗口被用于与用户交互,它可以是一个全屏界面,也可以是一个对话框。一个应用程序通常由多个Activity组成,每个Activity之间有一定关联。某个Activity可以通过其它Activity来启动,亦可以启动其它的Activity。

Activity-创建

  1. 创建一个Activity(或者它存在的子类)的子类,并实现系统回调方法。
    1. onCreate() Activity创建时被调用。需要调用setContentView()来定义交互布局。
    2. onStart() 开始运行调用。
    3. onResume() 开始与用户交互前调用。
    4. onPause() 暂停时调用。
    5. onStop() 停止运行时调用。
    6. onDestroy 销毁时调用。
    7. onRestart() 重新运行时调用。
  2. 实现用户交互界面。通常使用XML布局文件定义布局,然后使用setContentView()传递布局文件的ID设置程序UI。也可以使用自己新建的View。
  3. 在配置文件AndroidManifest.xml中声明activity。
<manifest ... >  <application ... >      <activity android:name=".ExampleActivity" />      ...  </application ... >  ...</manifest >

Activity–启动

  • 隐式Intent:
    使用在配置文件AndriodManifest.xml使用<intent-filter>指定入口。
<activity android:name=".ExampleActivity" android:icon="@drawable/app_icon">    <intent-filter>        <action android:name="android.intent.action.MAIN" />        <category android:name="android.intent.category.LAUNCHER" />        <!--或者-->        <action android:name="android.intent.action.DEFAULT" />        <category android:name="com.dean.learintent.intent.action.myActivity" />    </intent-filter></activity>

<action> 元素指定程序的入口。 <category> 指出该activity的启动器,如允许用户启动它的系统启动器 android.intent.category.LAUNCHER。或者用户自定义的启动器com.dean.learintent.intent.action.myActivity。

startActivity(new Intent("com.dean.learintent.intent.action.myActivity"));//通常在目标activity中使用静态常量string来记录这个值,比如public static final String ACTION="com.dean.learintent.intent.action.myActivity";...//使用startActivity(new Intent(myActivity.ACTION));

此方法可以使某个activity 启动其它程序的activity 。如果不想被其它应用程序启动,则在注册文件中将该activity的android:exported设置为false。

  • 显示Intent:
    调用startActivity(),并传递一个Intent,用于描述想要启动的activity或者指定动作,也可以传递少量的数据到目标activity。
Intent intent = new Intent(this, SignInActivity.class);startActivity(intent);
  • 启动带返回结果的activity
    使用startActivityFor|Result()取代startActivity()启动activity,然后实现onActivityResult()方法获取并处理回调结果。

activity–关闭

  • 调用finish() 终止activity。
  • 调用finishActivity() 终止之前启动的独立activity。

Activity-生命周期

activity的生命周期

  • activity的三种基本状态:
    • Resumed(Running):在屏幕前台并且拥有用户的焦点。
    • Paused:被覆盖,不拥有焦点,在内存中,内存不足时会被杀死。
    • Stopped:处于后台,对用户不可见,其它地方需要内存会被杀死。
  • 多activity协作:
    当activity启动另一个activity时,在第二个activity被created之前,第一个activity还没有完全被stopped。如果第一个activity停止时你须写入数据库以便后续的activity可以读取数据,那么你应该在 onPause() 方法而不是 onStop() 方法里写入数据库。

参考内容:

Android 中文API—Activity

0 0