setContentView 作用与用法
作用:给当前activity设置一个layout布局
安卓里的用户界面放在res.layout下,为xml文件,系统自动生成R类,R.layout自动获取res.layout文件夹中的xml文件,再用该语句调用。之后就可以看到页面啦。
setContentView(R.layout.main);
findViewById 作用与用法
作用:获取layout中的某个组件,以便于操作该组件,常见于view,button。
findViewById(R.id.xml文件中对应的idName)
Activity 生命周期
Activity是与用户交互的接口,一个activity对应一个窗口。Android系统中是通过Activity栈的方式来管理Activity的,而Activity自身则是通过生命周期的方法来管理的自己的创建与销毁。
1. Activity的四种状态
Active/Running:
Activity处于活动状态,此时Activity处于栈顶,是可见状态,可与用户进行交互。
Paused:
当Activity失去焦点时,或被一个新的非全屏的Activity,或被一个透明的Activity放置在栈顶时,Activity就转化为Paused状态。但我们需要明白,此时Activity只是失去了与用户交互的能力,其所有的状态信息及其成员变量都还存在,只有在系统内存紧张的情况下,才有可能被系统回收掉。
Stopped:
当一个Activity被另一个Activity完全覆盖时(失去焦点并且上层存在不透明的、非Dialog样式的Activity),被覆盖的Activity就会进入Stopped状态,此时它不再可见,但是跟Paused状态一样保持着其所有状态信息及其成员变量,该Activity的数据会在RAM中暂时保留,一旦系统需要内存,这种处于Stopped状态的Activity占用的RAM空间会优先被清理并重新利用。所以,在Activity处于Stopped状态时,必须要保存该Activity的UI状态,否则一旦RAM空间被重新利用,UI状态和数据就完全丢失。
Killed:
当Activity被系统回收掉时,Activity就处于Killed状态。不占用RAM空间。
2. Activity的生命周期
典型的生命周期:创建,运行,停止,销毁
onCreate
创建,它是生命周期第一个调用的方法,我们在创建Activity时一般都需要重写该方法,然后在该方法中做一些初始化的操作。
onStart
运行,此方法被回调时表示Activity正在启动,此时Activity已处于可见状态,只是还没有在前台显示,因此无法与用户进行交互。可以简单理解为Activity已显示而我们无法看见罢了。
onResume
运行,当此方法回调时,则说明Activity已在前台可见,可与用户交互了(处于前面所说的Active/Running形态)。
引用及扩展阅读:
https://blog.csdn.net/qq_35559358/article/details/79715222
https://blog.csdn.net/qingxuan521721/article/details/78737080
MVP架构 (Presenter)
只知道MVC,MVP是MVC的改良。主要不清楚presenter的作用。
View:主要负责界面的显示及跟数据无关的逻辑,比如设置控件的点击事件等
Presenter:主要负责View与Model的交互
Model:数据部分
任何需要更新或者操作数据的,都间接通过Presenter对象去操作数据
Presenter层持有View层对象的引用,除此之外不持有其他的UI控件等的引用,Model层会把想要更新View的操作委托Presenter去操作,而Presenter层会把更新View操作交给View层对象去操作。
了解 RxJava
a library for composing asynchronous and event-based programs using observable sequences for the Java VM
本质是实现异步操作的库,利用了观察者模式。
观察者模式面向的需求是:A 对象(观察者)对 B 对象(被观察者)的某种变化高度敏感,需要在 B 变化的一瞬间做出反应。程序的观察者模式,采用注册(Register)或者称为订阅(Subscribe)的方式,告诉被观察者:我需要你的某某状态,你要在它变化的时候通知我。类似OnClickListener
。
RxJava 的观察者模式有部分不同,有四个基本概念:
Observable (可观察者,即被观察者)
Observer (观察者)
subscribe (订阅)
事件
RxJava的事件回调方法有:
onNext() 普通事件
onCompleted() 事件队列完结。RxJava 不仅把每个事件单独处理,还会把它们看做一个队列。RxJava 规定,当不会再有新的 onNext() 发出时,需要触发 onCompleted() 方法作为标志。
onError() 事件队列异常。在事件处理过程中出异常时,onError() 会被触发,同时队列自动终止,不允许再有事件发出。
引用及扩展阅读:
http://gank.io/post/560e15be2dca930e00da1083#toc_1
待学习列表:
1,activity 生命周期
2,了解 Android 四大组件 ,activity ,service
3,Android 布局。LinearLayout,constr 依赖布局
4,线程,UI 主线程,子线程。
5, Rxjava ,了解
6,主线程不要出现耗时操作,ANR错误