摘要:单例模式(Singleton):表示一个类只会生成唯一的一个对象。由定义可以总结出单例模式的要点有三个:一是单例类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。一、懒汉式单例:在类被加载的时候,唯一实例已经被创建。这个设计模式在Java中容易实现,在别的语言中难以实现。View Code 1 public class Test { 2 public static void main(String[] args) { 3 Singleton singleton = Singleton.getInstance(); 4 ...
阅读全文
摘要:ContentProvider简介ContentProvider(数据提供者)是在应用程序间共享数据的一种接口机制ContentProvider提供了更为高级的数据共享方法,应用程序可以指定需要共享的数据,而其他应用程序则可以在不知数据来源、路径的情况下,对共享数据进行查询、添加、删除和更新等操作许多Android系统的内置数据也通过ContentProvider提供给用户使用,例如通讯录、音视频文件和图像文件等在创建ContentProvider时,需要首先使用数据库、文件系统或网络实现底层存储功能,然后在继承ContentProvider的类中实现基本数据操作的接口函数,包括添加、删除、查
阅读全文
摘要:数据的基本操作插入表:create table 系部(系部代码 char(6) not null primary key,系部名称 varchar(30) not null ,系主任 char(8) )gocreate table 专业(专业代码 char(4) not null primary key,专业名称 varchar(20) not null,系部代码 char(6) constraint wz11 references 系部(系部代码))gocreate table 班级(班级代码 char(9) not null primary key ,班级名称 varchar(20) ,专
阅读全文
摘要:一、基础1、说明:创建数据库CREATE DATABASE database-name 2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'--- 开始 备份BACKUP DATABASE pubs TO testBack 4、说明:创建新表create table tabname(col1 type1 [
阅读全文
摘要:使用SQLiteDatabase的beginTransaction()方法可以开启一个事务,程序执行到endTransaction() 方法时会检查事务的标志是否为成功,如果程序执行到endTransaction()之前调用了setTransactionSuccessful() 方法设置事务的标志为成功则提交事务,如果没有调用setTransactionSuccessful() 方法则回滚事务。使用例子如下: SQLiteDatabase db = ....;db.beginTransaction();//开始事务try { db.execSQL("insert into perso
阅读全文
摘要:除了前面给大家介绍的execSQL()和rawQuery()方法, SQLiteDatabase还专门提供了对应于添加、删除、更新、查询的操作方法: insert()、delete()、update()和query() 。这些方法实际上是给那些不太了解SQL语法的菜鸟使用的,对于熟悉SQL语法的程序员而言,直接使用execSQL()和rawQuery()方法执行SQL语句就能完成数据的添加、删除、更新、查询操作。Insert()方法用于添加数据,各个字段的数据使用ContentValues进行存放。 ContentValues类似于MAP,相对于MAP,它提供了存取数据对应的put(Strin
阅读全文
摘要:除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据。在Android平台上,集成了一个嵌入式关系型数据库—SQLite,SQLite3支持 NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型只有五种,但实际上sqlite3也接受varchar(n)、char(n)、decimal(p,s) 等数据类型,只不过在运算或保存时会转成对应的五种数据类型。 SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么。例如:可以在Integer
阅读全文
摘要:设计思路:1.首先得到sd卡目录,如果sd卡存在就把sd卡根目录下的文件和文件夹显示在listview中,2.定义两个button,一个用于返回根目录,一个用于返回上一层,3.对listview位置进行监听,如果是文件则提示打不开,如果是文件夹就进入下个目录,得到下个目录底下的文件和文件夹,刷新listview代码:View Code 1 package cn.shaoyangjiang.com; 2 import java.io.File; 3 import java.text.SimpleDateFormat; 4 import java.util.ArrayList; 5 i...
阅读全文
摘要:读取原始格式文件,首先需要调用getResource()函数获得资源对象,然后通过调用资源对象的openRawResource()函数,以二进制流的形式打开指定的原始格式文件。在读取文件结束后,调用close()函数关闭文件流关于读取原始格式文件的核心代码如下Resources resources = this.getResources();InputStream inputStream = null;try {inputStream = resources.openRawResource(R.raw.raw_file); byte[] reader = new byte[inputStrea
阅读全文
摘要:除了可以使用SAX和DOM解析XML文件,大家也可以使用Android内置的Pull解析器解析XML文件。Pull解析器的运行方式与SAX解析器相似。它提供了类似的事件,如:开始元素和结束元素事件,使用parser.next()可以进入下一个元素并触发相应事件。事件将作为数值代码被发送,因此可以使用一个switch对感兴趣的事件进行处理。当元素开始解析时,调用parser.nextText()方法可以获取下一个Text类型节点的值。使用Pull解析器读取itcast.xml的代码在本页下方备注Pull解析器的源码及文档下载网址:http://www.xmlpull.org/下面是本例子要解析的
阅读全文
摘要:有些时候,我们需要生成一个XML文件,生成XML文件的方法有很多,如:可以只使用一个StringBuilder组拼XML内容,然后把内容写入到文件中;或者使用DOM API生成XML文件,或者也可以使用pull解析器生成XML文件,这里推荐大家使用Pull解析器。使用Pull解析器生成一个与itcast.xml文件内容相同的myitcast.xml文件,代码在本页下方备注使用代码如下(生成XML文件):File xmlFile = new File("myitcast.xml");FileOutputStream outStream = new FileOutputStre
阅读全文
摘要://第一步:在AndroidMainFest.xml文件下的<Activity>标签上写入下面一句代码<uses-library android:name="android.test.runner" />//在AndroidMainFest.xml</application>下下句下面代码,注意targePackage是填自己应用程序的包名<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPac
阅读全文
摘要:在Android平台上可以使用Simple API for XML(SAX) 、 Document Object Model(DOM)和Android附带的pull解析器解析XML文件。 下面是本例子要解析的XML文件:文件名称:itcast.xml<?xml version="1.0" encoding="UTF-8"?><persons><person id="23"><name>liming</name><age>30</age></per
阅读全文
摘要:SD卡使用的是FAT(File Allocation Table)的文件系统,不支持访问模式和权限控制,SD卡适用于保存大尺寸的文件或者是一些无需设置访问权限的文件Android模拟器支持SD卡,但模拟器中没有缺省的SD卡,开发人员须在模拟器中手工添加SD卡的映像文件为了读\写SD卡上的文件,必须在AndroidManifest.xml中添加读\写SD卡的权限在SD卡上创建与删除文件的权限 Android.permission.MOUNT_UNMOUNT_FIFESYSTEMS向SD卡写入数据的权限 Android.permission.WRITE_EXTERNAL_STORAGE编程访问SD
阅读全文
摘要:Android 文件管理方法Android使用的是基于Linux的文件系统,对于文件的访问和管理是通过权限设置来限制的.在Linux系统中,文件权限分别描述了创建者、同组用户和其他用户对文件的操作限制。x表示可执行,r表示可读,w表示可写,d表示目录,-表示普通文件。产生这样的文件权限与程序人员设定的Android 存储文件的类型(内部存储)程序开发人员可以建立和访问程序自身的私有文件;(资源存储)可以访问保存在资源目录中的原始文件和XML文件;(外部存储)可以在SD卡等外部存储设备中保存文件Android系统允许应用程序创建仅能够自身访问的私有文件,文件保存在设备的内部存储器上,在Linux
阅读全文
摘要:读取其他程序的SharedPreferences一般步骤:通过CreatPackageContext()创建其他程序对应的Context通过这个Context的getSharedPreferences()方法获取对应的SharedPreferences对象如果需要写入数据,调用SharedPreferences的edit()方法获取对应的Editor对象3个访问必需条件共享者需要将SharedPreferences的访问模式设置为全局读或写访问者需要知道共享者的包名称和SharedPreferences名称访问者需要确切知道每个数据的名称和数据类型,用以正确读取数据读、写其他应用的Shared
阅读全文
摘要:SharedPreference作用:提供了一种轻量级的数据存取方法,主要存储数据比较少的配置信息。它以“key-value”对(类似于Map)的方式将数据保存在一个XML配置文件中。 存取数据方法:使用来自于andorid.content包接口 取数据使用:SharedPreferences接口存数据使用:SharedPreferences.Editor接口Context.getSharedPreferences(String name,int mode)方法得到SharedPreferences接口。该方法的第一个参数是文件名称,第二个参数是操作模式。操作模式有三种:MODE_PRIVAT
阅读全文
摘要:BindService中使用bindService()方法来绑定服务,调用者和绑定者绑在一起,调用者一旦退出服务也就终止了【onCreate()->onBind()->onUnbind()->onDestroy()】。由于Android 中的Service使用了onBind 的方法去绑定服务,返回一个Ibinder对象进行操作,而我们要获取具体的Service方法的内容的时候,我们需要Ibinder对象返回具体的Service对象才能操作,所以说具体的Service对象必须首先实现Binder对象,这个样子的话我们才能利用bindService的方法对Service进行绑定,
阅读全文
摘要:本案例是在android手机中运行,是一个没有界面的短信监听软件。主要是用BroadcastReceiver来接受短信广播,当接收到短信后就跳转到service中来转发短信。哈哈,不是用来干坏事的。这个案例用了个小协议,当用户安装好这个软件后,你先要用自己的手机发送内容@syj来绑定本手机。绑定好后会收到一个ok短信用来确定绑定成功。然后当其他人发短信给安装过软件的手机,你都会收到短信了。主要功能:能监听手机接收的所有短信能监听手机的开机信息能将开机信息发送到指定手机上能将截获的每一条短信将其发件号码和内容转发到指定手机上能通过接收特殊短信的方法设置接收短信的手机号码该软件能开机自动运行具体代
阅读全文
摘要:a)BroadcastReceiver的注册方法在上节课当中,我们已经讨论过BroadcastReceiver的运行机制和基本使用方法,如果要使监听器能够接受到广播所发送Intent,就必须将这个BroadcastReceiver注册到系统当中,在manifest文件注册的方法如下:但是使用这样的方法进行注册之后,即使你的应用程序没有启动,或者已经被关闭,这个BroadcastReceiver依然会继续运行,这样的运行机制可能会给软件的用户造成困扰。所以作为程序的开发者,我们希望能够有一种灵活的机制完成BroadcastReceiver的绑定和解除绑定操作。Android当然也考虑到了这些问题
阅读全文
摘要:Service是运行在后台的,没有界面的,用来处理耗时比较长的。Service不是一个单独的进程,不是一个单独的线程。Service有两种类型:本地服务(Local Service):用于应用程序内部 远程服务(Remote Sercie):用于android系统内部的应用程序之间 本地服务用于实现应用程序自己的一些耗时任务,比如查询升级信息,并不占用应用程序比如Activity所属线程,而是单开线程后台执行,这样用户体验比较 好。远程服务可被其他应用程序复用,比如天气预报服务,其他应用程序不需要再写这样的服务,调用已有的即可。Service的生命周期:Service的启动方法:服务不能自己运
阅读全文
摘要:BroadCast(广播):一种在系统内进行通信的机制.通过这种机制,它能够将系统中的某个进程的信息或者意图传递到其他的对这些信息或者意图感兴趣的进程.广播发送者:想要主动传递自己的信息或者意图给系统或者特定的接收者,以便其作出响应.广播接收者:想要接收系统或者特定进程的某些信息或意图,以便作出相应的响应.Android广播机制包含三个基本要素:广播(Broadcast)----- 用于发送广播。广播接收器(BroadcastReceiver)----- 用于接收广播。意图内容(Intent)----- 用于保存广播相关信息的媒介。广播的过程:首先在需要发送信息的地方,把要发送的信息和用于过滤
阅读全文
摘要:显式Intent定义:对于明确指出了目标组件名称的Intent,我们称之为显式Intent。显式Intent直接用组件的名称定义目标组件,这种方式很直接。但是由于开发人员往往并不清楚别的应用程序的组件名称,因此,显式Intent更多用于在应用程序内部传递消息。比如在某应用程序内,一个Activity启动一个Service。隐式Intent定义:对于没有明确指出目标组件名称的Intent,则称之为隐式Intent。它不会用组件名称定义需要激活的目标组件,它更广泛地用于在不同应用程序之间传递消息.由于没有明确的目标组件名称,所以必须由Android系统帮助应用程序寻找与Intent请求意图最匹配的
阅读全文