第六章 数据存储 6.1 持久化技术 持久化技术指将内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据仍然不会丢失. 主要有三种方式用于简单地实现数据持久化功能:文件存储.SharedPreferences存储以及数据库存储. 6.2 文件存储 android中最基础的一种数据存储方式,不对存储内容做任何格式化处理,比较适合存储一些简单的文本数据或二进制数据. 6.2.1 将数据存储到文件中 创建一个新项目FilePersistenceTest a.修改activity…
Handler是Android消息机制的上层接口,这使得在开发应用过程中我们只需要和Handler交互即可.Handler的使用过程很简单,通过它可以轻松地将一个任务切换到Handler所在的线程中去执行.当耗时操作完成以后可能需要在UI上做一些改变,由于Android开发规范的限制,我们不能在子线程中访问UI空间,否则就会触发程序异常,这个时候通过Handler就可以将更新UI的操作切换到主线程中执行. Android的消息机制主要是指Handler的运行机制,Handler的运行需要底层的M…
6.4 SQLite数据库存储 SQLite是一种轻量级的关系型数据库,运算速度快,占用资源少. 6.4.1 创建数据库 Android为了管理数据库,专门提供了SQLiteOpenHelper帮助类,借助这个类可以对数据库进行创建和升级. SQLiteOpenHelper是一个抽象类,需要创建一个自己的帮助类去继承它. SQLiteOpenHelper有两个抽象方法,onCreate()和onUpgrade(),分别实现创建.升级数据库的逻辑. SQLiteOpenHelper的另外两个重要的…
6.3 SharedPreferences存储 SharedPreferences使用键值对的方式来存储数据.同时支持多种不同的数据类型. 6.3.1 将数据存储到SharedPreferences中 得到SharedPreferces对象的三种方式: 1.Context类中的getSharedPreferences()方法 接收两个参数,第一个为用于指定SharedPreferences文件的名称,指定文件不存在则会创建一个. 第二个用于制定操作模式,MODE_PRIVATE. 2.Activ…
HttpURLConnection继承了URLConnection,因此也能够向指定站点发送GET请求.POST请求.它在URLConnetion的基础上提供了例如以下便捷的方法. int getResponseCode():获取server的响应代码. String getResponseMessage():获取server的訪问信息. String getRequestMethod():获取发送请求的方法. void setRequestMethod(String method):设置发送请…
先介绍去掉标题栏的方法: 第一种:也一般入门的时候经常使用的一种方法 requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏 注意这句一定要写在setContentView()方法的前面,不然会报错的 第二种:在AndroidManifest.xml文件中定义 <application android:icon="@drawable/icon" android:label="@string/app_name"…
1.得到蓝牙适配器 BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 2.打开蓝牙 if (!mBluetoothAdapter.isEnabled()) { Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, REQUE…
在程序开发时,对于一些比较耗时的操作,我们通常会为其开辟一个单独的线程来执行,这样可以尽可能的减少用户等待的时间.在Android中,默认情况下,所有的操作都是在主线程中进行的,这个主线程负责管理与UI相关的事件,而在我们自己创建的子线程中,又不能对UI组件进行操作,因此,Android提供了消息处理传递机制来解决这一个问题. 1.多线程的常见操作 1.创建线程. 在Android中,提供了两种创建线程的方法.(一种是通过Thread类的构造方法创建线程对象,并重写run()方法实现,另一种是通…
Android中的消息处理机制由四个部分组成:Message.Handler.MessageQueue和Looper,并且MessageQueue封装在Looper中,我们一般不直接与MQ打交道. 一.Looper Looper的字面意思是“循环者”,它被设计用来使一个普通线程变成Looper线程.所谓Looper线程就是循环工作的线程.在程序开发中(尤其是GUI开发中),我们经常会需要一个线程不断循环,一旦有新任务则执行,执行完继续等待下一个任务,这就是Looper线程. 一个线程中只有一个L…
1. Android消息处理机制: Handler, MessageQueue, Looper, Thread 线程概念 : 一个应用程序运行时它的主体被称为进程, 一个进程内部可以有多个线程, 线程共享进程的资源 线程间通信 在android系统中是怎么封装通讯的,假如存在两个线程A和B,如果A线程要告诉B线程一些消息,怎么实现? A进程怎么发发消息?(1)构造消息,消息里面有数据信息和处理函数(2)发消息:这两个步骤在android源码中被封装成Handler 消息在android中被封装为…