第一篇博客
作为一个Android初学者,面对Android基础各个知识点,在学习的同时越发觉得有总结的必要,因此在CSDN上开始了我的博客历程。
学习Android的第一本书是郭霖大神的《第一行代码Android》第二版,根据自己对这本书的理解,在总结上会有一些对这本书内容上的借鉴。
- 本着总结学习成果的方面去考虑,希望自己能够有所进步
- 之后写的“书中”均指的是《第一行代码Android》第二版
目录
Activity:展示给用户看的活动界面
Activity是Android组件中最基本也是最为常见用的四大组件(Activity,Service服务,Content Provider内容提供,BroadcastReceiver广播接收器)之一。
- 作为Android的四大组件之一,Activity是面向用户操作的核心。在Activity中,用户的操作基本都在这上面实现,同时,也是实现UI界面、组件的逻辑操作、用户获取与输入信息的主要面板。
- 在Activity中,xml文件起到了布局的作用。在Android studio中,有可视化编程的功能,可以直接拖动组件(Button等)到面板的功能,但从书上和实际学习过程中,直接编辑xml文件对整个布局的编程有益。
- 在Android studio中,创建活动时大多数会自动在Android Manifest.xml文件中注册好,但同时也可以在注册的行为认识到整个Android编程文件之间的联系。
- 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的活动类对象。