Android读书笔记
1、Android系统四大组件分别是活动(Activity)、服务(Service)、广播接收器(BroadcastReceiver)和内容提供器(Content Provider)。广播接收器可以允许你的应用接收来自各处的广播消息,比如电话、短信等,当然你的应用同样也可以向外发出广播消息。内容提供器则为应用程序之间共享数据提供了可能,比如你想要读取系统电话簿中的联系人,就需要通过内容提供器来实现。
2、SDK:软件开发工具包
3、所有的活动都要在 AndroidManifest.xml 中进行注册才能生效
4、requestWindowFeature(Window.FEATURE_NO_TITLE)的意思就是不在活动中显示标题栏,注意这句代码一定要在 setContentView()之前执行,不然会报错。
5、点击事件
Button button1 = (Button) findViewById(R.id.button_1);
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(FirstActivity.this, "You clicked Button 1",
Toast.LENGTH_SHORT).show();
}
});
6、Intent用法:显式和隐式
隐式:(展示一个网页)
button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse("http://www.baidu.com")); startActivity(intent); } });
拨打电话:
Intent intent = new Intent(Intent.ACTION_DIAL); intent.setData(Uri.parse("tel:10086")); startActivity(intent);
返回数据给上一个活动:
Intent intent = new Intent(FirstActivity.this, SecondActivity.class); startActivityForResult(intent, 1);
Intent intent = new Intent(); intent.putExtra("data_return", "Hello FirstActivity"); setResult(RESULT_OK, intent); finish();
onActivityResult()方法带有三个参数,第一个参数 requestCode,即我们在启动活动时传入的请求码。第二个参数resultCode,即我们在返回数据时传入的处理结果。第三个参数 data,即携带着返回数据的 Intent。由于在一个活动中有可能调用 startActivityForResult()方法去启动很多不同的活动,每一个活动返回的数据都会回调到 onActivityResult()这个方法中,因此我 们 首 先 要 做 的 就 是 通 过 检 查 requestCode 的 值 来 判 断 数 据 来 源 。
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case 1: if (resultCode == RESULT_OK) { String returnedData = data.getStringExtra("data_return"); Log.d("FirstActivity", returnedData); } break; default: } }
7、活动的生命周期
Android 是使用任务(Task)来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称作返回栈(Back Stack)。
每个活动在其生命周期中最多可能会有四种状态。
1. 运行状态
当一个活动位于返回栈的栈顶时,这时活动就处于运行状态。系统最不愿意回收的就是处于运行状态的活动,因为这会带来非常差的用户体验。
2. 暂停状态
当一个活动不再处于栈顶位置,但仍然可见时,这时活动就进入了暂停状态。你可能会觉得既然活动已经不在栈顶了,还怎么会可见呢?这是因为并不是每一个活动都会占满整个屏幕的,比如对话框形式的活动只会占用屏幕中间的部分区域,你很快就会在后面看到这种活动。处于暂停状态的活动仍然是完全存活着的,系统也不愿意去回收这种活动(因为它还是可见的,回收可见的东西都会在用户体验方面有不好的影响),只有在内存极低的情况下,系统才会去考虑回收这种活动。
3. 停止状态
当一个活动不再处于栈顶位置,并且完全不可见的时候,就进入了停止状态。系统仍然会为这种活动保存相应的状态和成员变量,但是这并不是完全可靠的,当其他地方需要内存时,处于停止状态的活动有可能会被系统回收。
4. 销毁状态
当一个活动从返回栈中移除后就变成了销毁状态。系统会最倾向于回收处于这种状态的活动,从而保证手机的内存充足。活动的生存期:
1. onCreate()
这个方法你已经看到过很多次了,每个活动中我们都重写了这个方法,它会在活动
第一次被创建的时候调用。你应该在这个方法中完成活动的初始化操作,比如说加载布
局、绑定事件等。
2. onStart()
这个方法在活动由不可见变为可见的时候调用。
3. onResume()
这个方法在活动准备好和用户进行交互的时候调用。此时的活动一定位于返回栈的
栈顶,并且处于运行状态。
4. onPause()这个方法在系统准备去启动或者恢复另一个活动的时候调用。我们通常会在这个方
法中将一些消耗 CPU 的资源释放掉,以及保存一些关键数据,但这个方法的执行速度
一定要快,不然会影响到新的栈顶活动的使用。
5. onStop()这个方法在活动完全不可见的时候调用。它和 onPause()方法的主要区别在于,如
果启动的新活动是一个对话框式的活动,那么 onPause()方法会得到执行,而 onStop()
方法并不会执行。
6. onDestroy()
这个方法在活动被销毁之前调用,之后活动的状态将变为销毁状态。
7. onRestart()
这个方法在活动由停止状态变为运行状态之前调用,也就是活动被重新启动了。活动的启动模式
standard:默认模式
singleTop:
singleTask:
singleInstance:
Android读书笔记相关推荐
- 第一行代码 Android读书笔记(二)
第一行代码 Android读书笔记 第三章 软件也要拼脸蛋-UI开发的点点滴滴 常用控件的使用方法 详解4种基本布局 自定义控件 最常用和最难用的控件-ListView 更加强大的滚动控件-Recyc ...
- 大话企业级android读书笔记(一)
Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备.目前尚未有统一中文名称,中国大陆地区较多人使用安卓(非官方)或安致(官方).Android操作系统最初由Andy Rubi ...
- 我的Android读书笔记——(1)
今天来阅读<Android开发艺术探索> 1.Activity生命周期和启动模式 问题1.架设当前Activity为A,如果这是用户打开一个新的ActivityB哪儿B的onResume和 ...
- android+读书笔记
<android开发案例驱动教程> chat 2: 1. 按 Ctrl+F11 F12 可切换模拟器的横屏竖屏 chat 3: 1. 开发google map必须使用带有google ap ...
- Android读书笔记---View基础
View篇(一) 什么是View? View是Android中所有控件的基类,不管是简单的button和TextView就还是复杂的RelativeLayout和ListView,他们都有共同的基类V ...
- Android 读书笔记
<Android开发艺术探索> 一.Activity 的生命周期和启动模式 1. 当前 Activity 为 A,此时打开 Activity B:A.onPause() → B.onCre ...
- Android读书笔记(六) OkHttp(GET、POST)、解析XML(Pull、SAX)
1.OkHttp的使用 使用OkHttp需要添加库到app/build.gradle文件中,如下: dependencies {compile 'com.squareup.okhttp3:okht ...
- Android读书笔记(一)
1.存储用户临时数据onSaveInstanceState() 当Activity由于内存不足而被回收时,临时数据丢失,为了避免这种情况要使用onSaveInstanceState(). 保存数据(用 ...
- 《Android开发艺术探索》读书笔记 (3) 第3章 View的事件体系
本节和<Android群英传>中的第五章Scroll分析有关系,建议先阅读该章的总结 第3章 View的事件体系 3.1 View基本知识 (1)view的层次结构:ViewGroup也是 ...
- Android深度探索(卷1)HAL与驱动开发 第四章 源代码的下载和编译 读书笔记
Android深度探索(卷1)HAL与驱动开发 第四章 源代码的下载和编译 读书笔记 本章学习了使用git下载两套源代码并搭建两个开发环境.分别为Android源代码和Linux内核源代码.A ...
最新文章
- Unity进阶技巧 - RectTransform详解
- 网卡驱动和队列层中的数据包接收
- java_软件发布版本_Asynch HttpClien 对比发行版本说明_Alpha、Beta、RC、GA版本的区别...
- 读取csv绘制直方图_[python]用tushare接口绘制Bollinger Bands
- 计算机专业多媒体技术学什么,计算机多媒体技术需要学习哪些知识
- tensorflow 版本列表,如何找到我的系统中安装了哪个版本的TensorFlow?
- windows下bat批处理实现守护进程
- MySQL 索引的查询、创建与删除
- STM32实现Airplay音乐播放器
- 如何用linux系统进行远程控制windows服务器
- 平板示波器如何进行探头的补偿和衰减系数设定-Pintech品致
- 【不忘初心】Win10 20H2 19042.964_X64_四合一太阳谷图标_[纯净精简版][2.83G](2021.5.1)
- Python爬取热门微博评论--问题与解决(1)
- 笔记本开热点手机一直显示正在获取ip
- 考研:研究生考试(五天学完)之《线性代数与空间解析几何》研究生学霸重点知识点总结之第四课欧氏空间
- 世界海洋日 | TcaplusDB号召你一同保护海洋生物多样性
- 华为服务器2288h v5安装系统,华为2288装系统
- 订单能否按时交期?制造企业必须面对这几个问题
- hahabet05-com:大数据与数据科学课程体系--哈哈电竞
- IIS6.0 asp.asa.cer.cdx. 原理
热门文章
- linux用户态内存屏障,Linux-内存屏障
- 从安防监控走进手机VR 红外线LED翻身
- python三阶魔方_三阶魔方还原公式
- Python crawler 豆瓣电影排行榜评分
- 相似度系列8:unify-BARTSCORE: Evaluating Generated Text as Text Generation
- 《日瓦戈医生》读后感
- python爬取58同城二手房信息_动手写爬虫(2):爬取58同城二手物品信息
- 【数学】一元函数积分学(宇哥笔记)
- php数据库操作类库doctrine使用全攻略
- 2017年sfdc工作总结_Name 顺序