Android
学习记录
1.三种
网络接口:java.net.*org.apacheAndroid.net.*2.service不是单独进程和线程3.组建都不是线程安全的4.Send丢失了mainfest.
xml文件,由于我的错误操作,比较可惜。需要添加《service》《receive》和《user-pemmsion》5.下载文件需要局域网地址,环回地址不行6.SQLiteOpenHelper的回调函数之onCreate()方法:该函数是在第一次创建数据库的时候执行,实际上是在第一次得到SQLiteDatabse对象的时候,才会调用这个方法7.handle安排"!!消息!!"或Runnable在某个主线程中"!!某个地方!!"执行,(2)安排一个"!!动作!!"在不同的"!!线程!!"中执行在
设计的时候引入了wince的消息机制,即将每一个消息发送到队列里面,遵循先进先出原则。发送消息并不会阻塞线程,而接收线程会阻塞线程,Handler一般有两种用途:1)执行计划任务,你可以再预定的实现执行某些任务,可以模拟定时器。2)线程间
通信。在Android的应用启动时,会创建一个主线程,主线程会创建一个消息队列来处理各种消息。当你创建子线程时,你可以再你的子线程中拿到父线程中创建的Handler对象,就可以通过该对象向父线程的消息队列发送消息了。由于Android要求在UI线程中更新界面,因此,可以通过该方法在其它线程中更新界面。8.apk是Android
系统的发布的工程包,很多时候我们想在电脑上而非Android手机上面运行它。下面就提供下AndroidAPK文件在电脑上面运行方法。第一步:下载并解压androidSDK到自己硬盘上。第二步:在系统环境变量中增加系统变量SDK_ROOT,并让它指向androidSDK安装目录之下的tools文件夹。第三步:cmd命令状态下进入androidSDK安装目录之下的tools文件夹,在并使用“androidcreateavd--nameJackliao--target3”创建一个叫“jackliao”(可以自行修改)的ADV。第四步:继续在cmd命令状态下输入命令“emulator-avdjackliao”,既可以启动模拟器进入Android手机的模拟界面了。不要关闭此界面。第五步:将你要运行的xxx.apk文件复制到androidSDK安装目录之下的tools文件夹中。第六步:新开一个cmd命令窗口,并进入androidSDK安装目录之下的tools文件夹中输入命令“adbinstallxxx.apk”,这个apk将会部署到你当前的模拟器中去,这样你刷新Android手机的模拟界面就可以看到你安装的
程序了。9.getcontext().getContentResolver().notifyChange()通知监听器,数据已经改变10.在BroadcastReceiver启动service:
1./2.启动一个ServiceIntentserviceIntent=newIntent(context,MyService.class);
3.4.5.6.7.
context.startService(serviceIntent);IntentactivityIntent=newIntent(context,MessageActivity.class);//要想在Service中启动Activity,必须设置如下标志
activityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(activityIntent);
11.java字节流到字符流的转换
Java设计模式之装饰模式
说明:说明:
装饰模式是在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。
装饰模式的特点;装饰模式的特点;
(1)装饰对象和真实对象有相同的接口。这样客户端对象就可以以和真实对象相同的方式和装饰对象交互。(2)装饰对象包含一个真实对象的索引(reference)(3)装饰对象接受所有的来自客户端的请求。它把这些请求转发给真实的对象。(4)装饰对象可以在转发这些请求以前或以后增加一些附加功能。这样就确保了在运行时,不用修改给定对象的结构就可以在外部增加附加的功能。在面向对象的设计中,通常是通过继承来实现对给定类的功