Android从零开始之认识Activity基础知识

时间:2021-05-20 12:40:08

一、Activity到底是个什么东西?
Activity作为Android系统中四大组件之一,Activity担负着家庭中男人一样的角色--极其重要。所以有必要对其进行深度学习。首先我们映入脑袋的第一个问题就是:Activity到底是个什么东西?

官方给出的解释如下:

Activity 是一个应用组件,用户可与其提供的屏幕进行交互,以执行拨打电话、拍摄照片、发送电子邮件或查看地图等操作。 每个 Activity 都会获得一个用于绘制其用户界面的窗口。窗口通常会充满屏幕,但也可小于屏幕并浮动在其他窗口之上。 一个应用通常由多个彼此松散联系的 Activity 组成。 一般会指定应用中的某个 Activity 为“主” Activity,即首次启动应用时呈现给用户的那个 Activity。 而且每个 Activity 均可启动另一个 Activity,以便执行不同的操作。 每次新 Activity 启动时,前一 Activity 便会停止,但系统会在堆栈(“返回栈”)中保留该 Activity。 当新 Activity 启动时,系统会将其推送到返回栈上,并取得用户焦点。 返回栈遵循“后进先出”堆栈机制,因此,当用户完成当前 Activity 并按“返回” 按钮时,系统会从堆栈中将其弹出(并销毁),然后恢复前一 Activity。 当一个 Activity 因某个新 Activity 启动而停止时,系统会通过该 Activity 的生命周期回调方法通知其这一状态变化。Activity 因状态变化—系统是创建 Activity、停止 Activity、恢复 Activity 还是销毁 Activity— 而收到的回调方法可能有若干种,每一种回调方法都会为您提供执行与该状态变化相应的特定操作的机会。 例如,停止时,您的 Activity 应释放任何大型对象,例如网络或数据库连接。 当 Activity 恢复时,您可以重新获取所需资源,并恢复执行中断的操作。 这些状态转变都是 Activity 生命周期的一部分。

上面说了很多,一句话总结即:Activity就是一个呈现给用户的界面。

二、如何创建一个Activity?

明白了什么是activity之后我相信,你肯定就迫不及待的想知道如何创建一个Activity了。让我们先看下activity类的继承关系。

Android从零开始之认识Activity基础知识

如果你想创建一个activity,你可以选择直接继承Activity类,如下:

public class MainActivity extends Activity

{

 @Override

 protected void onCreate(Bundle savedInstanceState)

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

}

当然你也可以继承其直接之类或者间接子类,如下:

public class MainActivity extends AppCompatActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
当然不论你用那一种方式,你都应该实现onCreate()这个方法。当你做完这些。别忘记在你的AndroidManifst.xml进行对其注册,如下:
<activity android:name="com.poison.helloworld.MainActivity" />
你还应该给你的程序设置有且只有一个主入口,因此还应该做如下的配置:
<activity android:name="com.poison.helloworld.MainActivity" > 
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
注:<action> 元素指定这是应用的“主”入口点。<category> 元素指定此 Activity 应列入系统的应用启动器内(以便用户启动该 Activity)。
自此,一个Activity就创建成功了。