回归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 一.概述 网络通信无论在手机还是其他设备上都应用得非常广泛,因此掌 ...
随机推荐
- FileFilter文件过滤器
引入:将E:\java目录下的所有.java文件复制到E:\jad目录下,并将原来的文件的扩展名从.java改为.jad package com_2; import java.io.File; imp ...
- Web Audio初步介绍和实践
Web Audio还是一个比较新的JavaScript API,它和HTML5中的<audio>是不同的,简单来说,<audio>标签是为了能在网页中嵌入音频文件,和播放器一样 ...
- big and little endian
总是容易搞混big endian 和 little endian,但是找到一篇文章,其解释让人耳目一新. 文章链接:http://www.cs.umd.edu/class/sum2003/cmsc31 ...
- java中垃圾回收机制中的引用计数法和可达性分析法(最详细)
首先,我这是抄写过来的,写得真的很好很好,是我看过关于GC方面讲解最清楚明白的一篇.原文地址是:https://www.zhihu.com/question/21539353
- 师大校赛D coloring Game 并查集
这题说的是 在一个 森林中 两个人在这棵树上涂颜色,黑色或者白色,第一次只能在1 号节点上涂色 第二次 只能在2上涂,以此类推, 在每个节点上只能涂黑色或者白色,并且相邻的点不能有相同的颜色,最后求不 ...
- XMLHttpRequest对象(Ajax)的状态码(readystate) HTTP状态代码(status)
2018-11-28 14:19:00 来自 :XMLHttpRequest对象(Ajax)的状态码(readystate) HTTP状态代码(status) XMLHttpRequest对象(Aj ...
- copy on write,代理模式
StringBuilder 内部用了代理的技术实现, 是可变字符串的代理 .net设计模式实例之代理模式(Proxy Pattern) 一.代理模式简介(Brief Introduction) 代理模 ...
- ASP.NET界面重定向传值
这么说吧,当程序启动时,ASP.NET会自动创建一些经常使用的类的实例,而这些实例就是ASP.NET的内置对象,常用的实例对象有:Response(来自HttpResponse类).Request(来 ...
- Linux 软件安装卸载命令
安装方式一: RPM 命令 rpm -qa|grep java 查看java 是否安装 rpm -e --nodeps 软件名 卸载已安装软件 rpm -ivh xxx.rpm 安装 安装 ...
- JS-向数组指定位置添加元素
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...