`
文章列表
ContentProvider 是 Android四大组件之一,Android提供了五种数据存储技术(其他的四种分别是:SharedPreferences、IO、SQLite、网络)。这五种技术都能由ContentProvider提供的方法按统一的代码格式存取。这种以一致性的方法操作多样性的数据源与面向对象的多态异曲同工。   Android中的Contentprovider机制可支持在多个应用中存储和读取数据。这也是跨应用共享数据的唯一方式。在android系统中,没有一个公共的内存区域,供多个应用共享存储数据。   Android提供了一些主要数据类型的Contentprovid ...
AIDL 服务只支持有限的数据类型,如果用AIDL服务传递一些复杂的数据就需要做更一步处理,  AIDL 服务支持的数据类型如下:1. Java 的基本数据类型(不需要import)2. String 和CharSequence(不需要import)3. List 和 Map ,List和Map 对象的元素必须是AIDL支持的数据类型; (以上三种类型都不需要import)4. AIDL 自动生成的接口  (需要import)5. 实现android.os.Parcelable 接口的类.  (需要import)  要传递一个需要import 的数据类型的值(如: 实现Parcelable ...
1,概述       Android系统中的各应用程序都运行在各自的进程中,进程之间通常是无法直接交换数据的。       Android提供了跨进程调用Service的功能,称为AIDL(android interface define language)Android接口定义语言。       ADIL相当与两个进程通信的协议,通过这个协议对进程间的通信进行了规范。按照该规范编写代码即可实现进程间的通信。   2,AIDL 接口文件       跨进程调用服务中需要定义接口文件,扩展名为.aidl       1、在项目的src文件夹下定义一个AIDL接口文件。     ...
通过在Service类的内部定义BroadcastReceiver对象,接收外部发送的广播,达到控制Service的目的。 步骤如下: 1、自定义Service的子类 2、在该Service子类中定义一个内部类,该类是BroadcastReceiver的子类 3、在Service类的onCreate方法中注册该广播接收者类,并设置action的值 4、在Activity中启动或绑定Service 5、在Activity中发送广播并传递数据,调用Service中的广播接收者的onReceive()方法   MyService.java  public class MyServ ...
Android中的Service和windows中的服务是类似的东西,服务一般没有用户操作界面,它运行于系统中不容易被用户发觉,可以使用它开发如监控之类的程序。 概述: 1,Service是Android的四大组件之一 2,Service本质上是后台运行的可执行程序,它没有Activity那样的用户界面 3,Service不能与用户进行交互,不能自己启动、运行在后台,类似于线程的程序。 4,Service 在很多场合中应用:   1)播放多媒体的时候用户启动了其他Activity,这个时候程序要在后台继续播放。   2)检测SD卡上文件的变化   3)在后台记录手机当前的地理 ...
1、如何接收广播 接收广播首先要编写一个广播接收器类,该类必须从BroadcastReceiver或者子类继承。 在BroadcastReveiver.onReceive(Context context,Intent intent)中编写处理广播的代码,并且要在AndroidManifest.xml中注册。 1)自定义BroadcastReceiver类 class MyBroadcastReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context,I ...

Intent 详解

Intent意图 Android基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent。Intent提供了一种通用的消息系统,他允许在你的应用程序与其他的应用程序间传递Intent来执行动作和产生事件。   使用Intent可以划分三种类型的核心组件:Activity(活动),Service(服务),Broadcast(广播)   Intent的常用属性      1,Component  (应用程序中有很多Activity,根据ComponentName决定要启动某一个Activity)       2,Action  (指定下一个Activity的功能) ...
Form表单重复提交是web开发中一个很常见的问题。先总结以下几种解决方案 模拟Action后台查询数据需要时间等待,此间用户可能会多次点击提交按钮或者刷新页面,此时Action也会反复执行多次,这并不是我们想要的。如下,模拟Action操作。 TestAction.java   public class TestAction { private User user;//省略get/set方法... public String execute() { try { Thread.sleep(3000); } catch (InterruptedExcepti ...

struts2 UI标签

Struts2的UI标签  1) 用途:   --生成框体(文本框、选择框)  --自动回显数据(文本框显示值,选择框做默认勾选)  --常用于修改功能中默认数据的显示  2) 涉及的标签  a,表单标签 b,文本框标签 c,密码框标签 d,单个值的复选框标签 e,提交按钮标签  f,单选框标签 g,复选框标签 h,下拉选择标签   案例如下:     ToUpdateAction.java  public class ToUpdateAction { //input,由于是模拟的代码,不给输入了 //output private Customer custo ...

Struts2拦截器

  1、Struts2中使用拦截器来扩展Action的功能,往往是用来处理Action之间通用的事务,比如:记录日志、权限检查、控制事务。并且这种方式是可配置的,灵活很高,这种方式大大的提升了Struts2框架的扩展性。是AOP思想的一种体现。 2、Struts2中预置了大量的拦截器,我们可以直接使用,这些拦截器定义在struts-default.xml中,每一个拦截器都对应一个类,这些类都实现了统一的接口Interceptor。 3、拦截器的使用步骤      a.创建拦截器组件(类),要实现Interceptor接口      b.在struts.xml中,package下注册 ...

java中clone()

java中的Clone来创建对象很久以前使用过,太长时间不用反倒忘了,好记性不如乱笔头,今天捡起来并记录好笔记。 浅层复制:只复制成一个新的对象,但是不复制对象的属性。   深层复制:复制成一个新的对象,对象的属性也复制一个新的。   注意:java中的clone()方法是浅层复制。   clone()方法的使用步骤: 1)让要进行复制的类实现Cloneable接口   2) 覆盖clone()方法 注意:调用Clone()方法的对象所属的类(Class)必须implements Clonable接口,否则在调用Clone方法的时候会抛出CloneNotSupportedE ...

Struts2 Result详解

1,Result原理  1) Result组件是Struts2中用于输出的组件,实际上就是Java代码。  2)Struts2中预制了10中类型的Result,这些Result什么在struts-default.xml中。     这些类实际上都事先了统一的接口:Result. <result-types> <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/> & ...
现在我们通过一个更新ProgressBar的小案例来学习下Android的UI更新和消息机制。 如下图,点击“Start”按钮,进度条开始变化。  第一步:如下代码:   btnStart.setOnClickListener(new View.OnClickListener() { @Override public void onClick(Vi ...
1,从Intent获取网页,发送请求,将网页以流的形式读回来。 1)创建一个URL对象:URL url = new URL("http://www.iteye.com"); 2) 获取链接 :HttpURLConnection conn=(HttpURLConnection )url.openConnection(); 3) 设置超时时间:conn.setConnectTimeout(6*100 ...
下面是之前遇到此类问题,网上找的一篇文章解决的,方法验证过,可以解决不同手机多TF卡的情况。 Android获取外部SDcard的官方调用是Environment.getExternalStorageDirectory() 但是根据不同机型,是有不同的结果的。如果手机支持TF卡扩展,并且本身没有大容量存储,比如说HTC老款手机 G3之类的,那么获取到的是TF卡的路径。这是对的。如果手机本身有大容量存储,不论手机是否支持TF
Global site tag (gtag.js) - Google Analytics