初学Android:Activity与Intent小结

这篇博客是Android初学者的学习总结,主要探讨了Activity的生命周期、启动模式,以及Intent的显式和隐式用法。Activity作为用户界面的核心,其生命周期包括创建、暂停、恢复和销毁等阶段。启动模式包括standard、singleTop、singleTask和singleInstance,各有不同的栈管理策略。Intent作为组件间通信的载体,分为显式Intent(明确指定目标Activity)和隐式Intent(依据action、category匹配)。此外,还介绍了如何通过Intent传递数据以及接收返回数据的方法。
摘要由CSDN通过智能技术生成

第一篇博客

作为一个Android初学者,面对Android基础各个知识点,在学习的同时越发觉得有总结的必要,因此在CSDN上开始了我的博客历程。

学习Android的第一本书是郭霖大神的《第一行代码Android》第二版,根据自己对这本书的理解,在总结上会有一些对这本书内容上的借鉴。

  • 本着总结学习成果的方面去考虑,希望自己能够有所进步
  • 之后写的“书中”均指的是《第一行代码Android》第二版

目录


Activity:展示给用户看的活动界面

Activity是Android组件中最基本也是最为常见用的四大组件(Activity,Service服务,Content Provider内容提供,BroadcastReceiver广播接收器)之一。

  1. 作为Android的四大组件之一,Activity是面向用户操作的核心。在Activity中,用户的操作基本都在这上面实现,同时,也是实现UI界面、组件的逻辑操作、用户获取与输入信息的主要面板。
  2. 在Activity中,xml文件起到了布局的作用。在Android studio中,有可视化编程的功能,可以直接拖动组件(Button等)到面板的功能,但从书上和实际学习过程中,直接编辑xml文件对整个布局的编程有益。
  3. 在Android studio中,创建活动时大多数会自动在Android Manifest.xml文件中注册好,但同时也可以在注册的行为认识到整个Android编程文件之间的联系。
  4. Android语法基于Java,Activity类继承于AppCompatActivity,需要重写onCreate方法。顾名思义,onCreate方法是在创建活动时则会被调用的的方法。在某些方面与Java中的main方法类似,因此,整个程序的设计逻辑因从这出发。

获取布局文件中的组件:

若想从xml布局文件中获取组件(以Button为例,同时对button设置事件监听器–使用匿名内部类的方法)
xml文件:

<Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="button"/>

Activity的类文件:

Button button = (Button) findViewById(R.id.button);
button .setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //在此写相对应的逻辑
            }
        });

从这可以看出Activity的与xml相结合的编程方法。

活动的生命周期

用栈的思想去处理一个个活动


活动的启动模式

活动的启动模式分为四种,需要在AndroidManifest.xml中通过g给activity标签指定android:launchMode属性来选择启动模式

例如:

android:launchMode="singleTop"

standard

standard是活动默认的启动模式,因此,根据返回栈的思想,每当启动一个新的活动,它就会在返回栈中入栈,并处于栈顶的位置,因此即使重新启动相同的活动(A1),原来的活动(A0)也不会被销毁,而A1活动则会处于栈顶。即每次启动时都会创建该活动的一个新实例。

singleTop

singleTop启动模式则对于处于栈顶的活动A0,若想要再启动一个相同的服务时,并不会创建一个该活动的新实例,因该活动的实例处于栈顶位置。即返回栈中只有一个活动A,但若返回栈中有一个该活动A0,单不处于栈顶位置,即下设当前栈顶位置为活动B0,则B0想要启动活动A类时,则会在返回栈中添加一个新实例A1

A1
B0
A0
(A0与A1为相同的活动类)

singleTask

singleTask启动模式则会解决singleTop中所遇到重复启动两个相同的活动类的问题,在该启动模式中,对于B0活动想要启动A类活动,而返回栈中存在A0活动,则会将返回栈中处于A0以上的活动全部出栈,使A0活动处于最上方。
即启动A类活动前
B0
A0
启动A类活动后
A0

singleInstance

该启动模式则会启用一个新的返回栈来管理这个launchMode被指定为singleInstance的活动类对象。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值