1数据持久化 文件存储,SharedPreference存储 数据库存储。
openFileOutput方法,用于将数据存储到指定的文件中。两个参数(文件名,操作模式,)返回FileOutStream对象,然后进行写入操作。使用java流进行操作。然后使用openFileInput(文件名来读取出来)
首先获得SharedPreference.Editor对象。然后,edit。put各种类型的值,已键值对的方式,--之后commit提交。,这种方法是已xml格式对数据进行管理
取数据用getSharedpreferences(文件名,默认值,找不到的时候使用。)
SQLite数据库存储,数据类型integer,real浮点型,text,blob二进制。,一个类继承SQLitePenhelper,getReadableDatabase和getWriteableDatabase方法,打开或创建数据库。进行读写操作。优先前者,升级数据库,在更新方法里面,先把旧表删除,再重新创建表,如果,旧表已经存在会报错。。添加数据方法,使用ContentValues方法。调用insert方法。/update delete query还可以使用SQL语句操作crad方法,,,最后事务的回滚,要么都成功或失败db.beginTransaction方法开启事务-setTransactionsuccsessful 事务已经执行成功,最后finally,结束事务。升级数据库的最佳写法。switch里case没有break。
2内容提供者。不同的应用程序之间实现数据共享。通过getContentResolver方法获得内容提供者对象ContentRessolve。
内容URI给内容提供器中的数据建立了唯一标识符。格式,协议权限路径。使用Uri.parse,将URI字符串解析成uir对象。
然后内容提供者对象,通过uri标识进行CRAD方法,,这里的URI是系统提供的地址。
创建自己的内容提供者。继承ContentPRovider类。重写里面的CRAD方法。URI的格式,以路径结尾的表示访问该表的所有数据,已ID
结尾表示期待访问该表中拥有相应id的数据。
然后用uriMatcher.addURI方法,将uir字符串添加进去,再另一边用uriMatcher,match(uri)方法得到返回的自定义的代码,可以进行区分判断对表进行操作。
3多媒体的使用。notification对象。通知new Notificaton对象,还有些高级用法,铃声,震动和LED
PendingIntent的用法。
SmsManager发送短信和收短信。
服务server并不是运行在一个独立的进程当中,而是依赖于创建服务所在的应用程序进程中
消息队列。Mesag携带少量数据,handle用于发送和处理这个消息。MessageQueue消息队列,发过来的消息存在队列中,每个线程只会存在一个消息队列,。然后调用looper
将消息循环取出。
所以一条消息就从子线程进入到了主线程。
2使用异步方法。
继承Server方法,重写Onbind方法,oncreat 创建时调用onstartCommand每次服务启动的时候调用 ondestroy
服务和活动通讯。onbind方法里面返回bind对象。就可以new这个对象 在对象的类里面写很多方法。然后在活动这边使用bind方法将活动和服务绑定。接受三个参数1intent到哪个服务,2connection实例。3标志位。就可以实现活动和服务通信。connection是活动这边的一个匿名类。里面重写bind类的方法,无方法体。
注意startserver和bindserver都启动时。注意的地方。
在服务里面调用多线程,处理耗时任务。或是直接继承intentserver这个类,重写方法。可以处理耗时任务,因为onhandleintent这个方法是在子线程进行的,,这个类集合开线程和自动停止于一身。
android中定时。Timer和alarm前者cpu进入睡眠状态,可能不运行,后者有唤醒cpu功能。
webview的用法。不使用系统浏览器
使用Http访问网络
httpURLconnection和HttpClient客户端向服务端发送HTTP请求,服务器收到数据返回数据给客户端,客户端对收到的数据解析
1url 2 获得HttpURLconnection对象。3这个对象设置一些参数。get、pos t时间 4调用getinputStream获得输入流。5关闭http连接,
可以将结果放在Message对象里面。然后发送出去,到主线程里面,然后对UI进行更新。
使用HttpClient对象 1获得这个对象new DefaultHttpClient 2 new HttpGet(传入URL) 或HttpPost 3如果发送的是post请求,则把数据放集合里发送。。4执行。5 根据请求和相应都成功后。调用getEntity获得这个实例。。6 toshting方法把实例转字符串。就得到了返回的数据了
解析XML
PULL解析和SAX 方法
1获得XmlPillParserFactory实例 2 获得XmlPUllParser对象 3 setInput将服务器返回的xml数据设置进行,然后就可以解析4getEcent获得解析事件,5循环解析。,getname获得解析节点的名字。
SAX解析
继承DefaultHandler,重写方法。。1开始解析,开始节点。2结束节点3 解析内容调characters方法。4节点结束。
JSON对象。优点体积小。网络传输省流量。解决jasn方法,使用JSONobject 和GSON
1JSONarray(数据)2 getjsonobject方法,循环把数据取出来。
2GSON方法,加入jar包。P402页
java回调机制
intent传递对象,这个对象实现序列化接口。然后再用putExtra,对象放入。,取数据对象的时候用getSerializableextra。
第二种方法实现Parcelable方法,将对象分解,分解后的每一个对象都是intetn支持传输的数据类型。,取数据的时候类似get
创建测试工程
好好学习天天向上。加油2016是自己蜕变的一年。克服自己。