0
点赞
收藏
分享

微信扫一扫

第三章:Android四大组件之Activity

孟祥忠诗歌 2022-03-13 阅读 68


Activity概述

Activity(活动)是Android应用程序中最基本的组成单位。
Activity主要负责创建显示窗口,一个Activity对象通常就代表了一个单独的屏幕。
Activity是用户唯一可以看得到的组件,用来与用户进行交互的。
Activity是通过一个Activity栈来进行管理,当前显示的Activity被放到栈顶 。

Activity生命周期 

方法

功能描述

onCreate()

Activity初次创建时被调用,在该方法中一般进行一些静态设置,如创建View视图、进行数据绑定等。

onStart()

Activity对用户即将可见的时候调用。

onRestart()

Activity从停止状态重新启动时调用。

onResume()

Activity将要与用户交互时调用此方法,此时ActivityActivity栈的栈顶,用户输入的信息可以传递给它。

onPause()

当系统要启动一个其他的Activity时(其他的Activity显示之前),这个方法将被调用,用于提交持久数据的改变、停止动画等

onStop()

当另外一个Activity恢复并遮盖住当前的Activity,导致其对用户不再可见时,这个方法将被调用

onDestroy()

Activity被销毁前所调用的最后一个方法

 

 

 声明周期的调用顺序   

(1)启动activity,然后按返回键退出。
    onCreate()->onStart()->onResume()
    onPause()->onStop()->onDestory()
(2)启动activity,按Home键显示桌面,再点程序图标进入应用程序。
    onCreate()->onStart()->onResume()
    onPause()->onStop()
    onRestart()->onStart()->onResume()
(3)启动activityA,在启动activityB
    AonCreate()->AonStart()->AonResume()
    AonPause()
    BonCreate()->BonStart()->BonResume()


启动Activity

常用有两种方式:
                - Intent intent = new Intent(MainActivity.this , NextActivity.class);
                - Intent intent = new Intent();
                - intent.setClass(MainActivity.this , NextActivity.class);
常用启动方法有两种:
                  - startActivity();
                  - startActivityForResult();


(1)启动activity,然后按返回键退出。
(2)启动activity,按Home键显示桌面,再点程序图标进入应用程序。
(3)启动activityA,在启动activityB
(4)启动activityA,在启动activityB,按返回键。


使用Intent实现页面跳转

Intent中文翻译成意图。Intent(意图)主要是解决Android应用的各项组件之间的通讯,Intent又分为两种,一种是显示意图,一种是隐式意图。

显示意图:明确指定组件名的Intent为显式意图,指定了Intent应该传递给那个组件。(讲解四种代码编写方式。)

Intent


 /**
* 第一种方式
*/
Intent intent = new Intent();
intent.setClass(MainActivity.this, SecondActivity.class);
startActivity(intent);

 /**
* 第二种方式
*/
Intent intent2 = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent2);

 /**
* 第三种方式
*/
Intent intent3 = new Intent();
ComponentName componentName = new ComponentName(MainActivity.this, SecondActivity.class);
intent3.setComponent(componentName);
startActivity(intent3);

 /**
* 第四种方式
*/
startActivity(new Intent(MainActivity.this, SecondActivity.class));


隐式意图:没有明确指定组件名的Intent为隐式意图,系统会根据隐式意图中设置的 动作(action)、类别(category)、数据URI等来匹配最合适的组件。


<activity android:name="com.example.day06_intent.ThridActivity">
            <intent-filter >
                <action android:name="thirdActivity"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
</activity>         
                                    /* 隐式跳转
             */
            Intent intent4 = new Intent();
            intent4.setAction("thirdActivity");
            startActivity(intent4);


 Activity的启动模式

一、standard(默认standard)


二、singleTop


三、singleTask


四、singleInstance

 

 

 

 

举报

相关推荐

0 条评论