回归Android之Android基础和小常识
Activity ,Service,Content Provider,BroadcastReceiver, Intent
SQLite,Http,Fragement,Handle
1,Activity:
onCreate ——> onStart——> onResume——> onPause()——> onStop——> onDestroy
2,Service:
1) onCreate——> onStart(Intent intent,int startId)——> onDestroy
startService(serviceIntent) /stopService(serviceIntent)
2)如果希望启动服务的Activity关闭后Service自动关闭,就需要讲Activity与Service绑定。
public boolean bindService(Intent service,ServiceConnection conn ,int flags) //flags一般为Context.BIND_AUTO_CREATE
2)Handler
在主线程当中是不允许通过子线程去更新主UI的 ,因为这会导致主UI卡死。也就是说,Android主线程是线程不安全的,更新UI只能在主线程中更新。
解决方法:Handler——>主要接受子线程发送的数据, 并用此数据配合主线程更新UI.
由于Handler运行在主线程中(UI线程中), 它与子线程可以通过Message对象来传递数据。这个时候,Handler就承担着接受子线程传过来的(子线程用sendMessage()方法传递),Message对象(里面包含数据) , 把这些消息放入主线程队列中,配合主线程进行更新UI。
handler可以分发Message对象和Runnable对象到主线程中, 每个Handler实例,都会绑定到创建他的线程中(一般是位于主线程)。
它有两个作用: (1): 安排消息或Runnable 在某个主线程中某个地方执行, (2)安排一个动作在不同的线程中执行。
Handler中分发消息的一些方法
post(Runnable)
postAtTime(Runnable,long)
postDelayed(Runnable long)
sendEmptyMessage(int)
sendMessage(Message)
sendMessageAtTime(Message,long)
sendMessageDelayed(Message,long)
以上post类方法允许你排列一个Runnable对象到主线程队列中,
sendMessage类方法, 允许你安排一个带数据的Message对象到队列中,等待更新.
3,Content Provider
使用ContentProvider,应用程序可以实现数据共享
1)ContentProvider简介
当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据。虽然使用其他方法也可以对外共享数据,但数据访问方式会因数据存储的方式而不同,如:采用文件方式对外共享数据,需要进行文件操作读写数据;采用sharedpreferences共享数据,需要使用sharedpreferences API读写数据。而使用ContentProvider共享数据的好处是统一了数据访问方式。
getContentResolver.query(ContactsContract.Contacts.CONTENT_URI,projection,selection,null,null)
四个参数分别为:
columns, // 要返回的数据字段
null, // WHERE子句
null, // WHERE 子句的参数
null // Order-by子句
);
4,先 Layout :onInterceptTouchEvent false
view: onTouchEvent true
http://blog.csdn.net/android_tutor/article/details/7193090
http://blog.csdn.net/lvxiangan/article/details/9309927
5,今天遇到一个问题,困扰好久(20150105)
scrollview嵌套listview 只显示一个item的问题。
解决方法:
http://www.apkbus.com/android-11540-1.html
如果listview的点击事件失效的话,注意看是否是listview item的clickable=“true” 需要拿掉
******************************************************
补充:
1,Android配置:
1) java -version
2)jdk1.6下载地址:
http://support.apple.com/kb/DL1572?viewlocale=zh_CN&locale=zh_CN
3) 安装eclipse svn插件 :
team ——>更新,提交等
2,xml 属性
android:fitsSystemWindows="true"设置布局调整时是否考虑系统窗口(如状态栏)
android:layout_marginLeft指该控件距离边父控件的边距,
android:paddingLeft指该控件内部内容,如文本距离该控件的边距。
android:ems = "10" 设置TextView或者Edittext的宽度为10个字符的宽度。当设置该属性后,控件显示的长度就为10个字符的长度,超出的部分将不显示。
<requestfocus />用于指定屏幕内的焦点View
3,快捷键
alt +/ 提示信息
ctrl + o 函数层次
选中某个词组,ctrl +k 向下查找,ctrl +shift+ K向上查找
ctrl + T 层次
ctrl +shift + F 格式化
ctrl +1 快捷修复 F2+ enter 选择快捷修复的第一个
不允许switch嵌套
//Android
高手速成android开源项目【View篇】
http://www.xuebuyuan.com/2192689.html
回归Android之Android基础和小常识的更多相关文章
- [Android 泥水匠] Android基础 之一:浅谈Android架构到HelloWorld案例的剖析
作者:泥沙砖瓦浆木匠网站:http://blog.csdn.net/jeffli1993个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节. 交流QQ群:[编程之美 365234583] ...
- Android逆向-Android基础逆向(5)
本文作者:i春秋作家——HAI_ 0×00 前言 不知所以然,请看 Android逆向-Android基础逆向(1)Android逆向-Android基础逆向(2)Android逆向-Android基 ...
- Android 触摸手势基础 官方文档概览
Android 触摸手势基础 官方文档概览 触摸手势检测基础 手势检测一般包含两个阶段: 1.获取touch事件数据 2.解析这些数据,看它们是否满足你的应用所支持的某种手势. 相关API: Moti ...
- Android Content Provider基础
Android Content Provider基础 Content Providers Content providers管理对一个结构化的数据集合的访问.它们封装了数据,并且提供了保护数据安全性的 ...
- Android 触摸手势基础 官方文档概览2
Android 触摸手势基础 官方文档概览 触摸手势检测基础 手势检测一般包含两个阶段: 1.获取touch事件数据 2.解析这些数据,看它们是否满足你的应用所支持的某种手势. 相关API: Moti ...
- Android应用开发基础篇(1)-----Button
Android应用开发基础篇(1)-----Button 一.概述 Button,顾名思义就是按钮的意思,它主要的功能是响应用户按下按钮时的动作. 二.应用 新建一个工程, ...
- Android应用开发基础篇(3)-----ListView
一.概述 ListView是一个列表显示控件,它的应用非常广泛,在很多应用程序中都可以看到它的身影,比如来电通,网易新闻等等,特别是QQ.因此非常有必要熟练掌握它. 二.要求 能够利用ListView ...
- Android应用开发基础篇(4)-----TabHost(选项卡)
一.概述 TabHost是一种用来显示标签的组件,不清楚?看一下来电通这个应用就知道了.这个组件用起来与其他组件不太一样,它需要继承TabActivity这个类,还有它的布局文件与我们平时用的也有些不 ...
- Android应用开发基础篇(12)-----Socket通信
链接地址:http://www.cnblogs.com/lknlfy/archive/2012/03/03/2378669.html 一.概述 网络通信无论在手机还是其他设备上都应用得非常广泛,因此掌 ...
随机推荐
- Tomcat任意文件上传漏洞CVE-2017-12615
文章来源:https://blog.csdn.net/qq1124794084/article/details/78044756 漏洞影响的tomcat版本为tomcat7.0.0-7.0.81版本 ...
- notepad怎么把空格替换成回车?
替换时选中“使用正则表达式”查找里输入\s替换里输入\r然后“全部替换”即可
- kali漏洞扫描
nmap (apt-get install nmap) nmap从初级到高级 ------------------------------ Nessus (dpkg -i Nessu ...
- 08 集合[11,22,33,44,55,66,77,88,99],将所有<66的值保存至字典的第一个key中,将所有>=66的值保存至字典的第二个key中。即:{'k1':<66的所有值,'k2':>=66的所有值}
li = [11,22,33,44,55,66,77,88,99]dict = {'k1':[],'k2':[]}for i in li: if i < 66: dict[& ...
- JavaScript--将秒数换算成时分秒
getTime() 返回距 1970 年 1 月 1 日之间的毫秒数 new Date(dateString) 定义 Date 对象的一种方式 <!DOCTYPE html> <h ...
- 【Linux学习五】文本处理
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 一.cut:显示切割的行数据f:选择显示的列s:不显示没有分隔符的行d ...
- arm cortex-m0plus源码学习(二)AMBA3.0_ AHBLite
1. AMBA总线概述 AMBA2.0 以上版本都是基于单沿时钟.单向信号线的协议[1]. 现在市场上大部分的基于 AMBA 架构的 SoC 产品, 系统总线采用 AHB, 外部总线采用 APB.系统 ...
- flask 表单
表单 在Web程序中,表单时和用户交互最常见的方式之一.用户注册.登录.撰写文章.编辑设置,无一不用到表单.不过,表单的处理不简单.要创建表单,验证用户输入的内容,向用户显示错误提示,还要获取并保存数 ...
- flask模板应用-自定义错误页面
自定义错误页面 当程序返回错误响应时,会渲染一个默认的错误页面,我们可以注册错误处理函数来处理错误页面 错误处理函数和视图函数很相似,返回值将作为响应的主题,因此我们先要创建错误页面的模板文件.为了和 ...
- WebStorm: The Smartest JavaScript IDE by JetBrains
WebStorm: The Smartest JavaScript IDE by JetBrains https://www.jetbrains.com/webstorm/?fromMenu