使用同步适配器(sync adapter)传输数据

在android设备与web服务器之间实现数据同步能显著提高你的应用的实用性,让你的应用更受用户的欢迎。比如说,你的数据上传给web服务器,这就有了一个实用的备份。当用户的设备离线工作时,这时从服务器下载输数据是很有用的。有些情况下,用户可能会觉得通过网页的同步接口来输入或编辑数据更方便,因为这些数据很快就从同页上同步过来了,他们也可能想在一段时间内采集数据然后再将数据上传到中央存储区。

尽管你可以自己为你的应用设计一套数据传输系统, 你仍应该考虑使用Android的Sync adapter framework(m同步适配器框架)。这个框架能帮你自动管理数据传输以及多个不同应用之间的相应的同步操作。借助这个框架,你可以使用以下几个功能,而这些功能不适用于你自己设计的数据传输方案。

插件结构

允许你以可调用控件的形式来向系统添加数据传输代码。

自动化操作

允许你基于大量的标准之上进行数据自动传输,其中包括数据修改,运行时间以及当天的时间。另外,你可在系统里添加数据传输代码,这些代码无法在队列里运行。当需要的时候,它们就会被运行。

网络自动检查

当你的设备有网络连接时,系统才会传输数据。

提高电池性能

你可以在一个位置来集成管控你所有应用的数据传输任务,保证了它们都在同一时间被执行。同样,你应用的数据传输和其它应用的数据传输也被限定连在一起了。这些特性能够减少你的系统在网络上切换的次数,也就减少了电池的消耗。

帐户的管理和认证

如你的应用有需要用户的证书或服务器的登录,你可以很随意将帐户的管理和认证集成到你的数据传输中。

这个类展示了如何创建一个同步适配器和bound service,其中bound service 包裹着适配器。如何提供一些组件能够帮助你将sync adapter 集成到框架里,如何用各种方式运行同步适配器(sync adapter)。

注意:同步适配器可以异步工作。所以使用前你要先知道它们是定期而有效地传输数据,而不是即时地。如果你需要即时传输数据,应该在AsyncTask或IntetentService里操作。

教程

创建一个根认证器

学习如何添加一个帐户处理组件,满足同步适配器的需要,成为你app的一部分。这个教程会向你展示怎样简单地创建一个根验证器。

创建根Content provider

学习如何添加一个content provider, 满足同步适配器的需要,成为你app的一部分。这节教程假设你的应用没有使用content provider, 这里会你演示怎么创建这个根组件。如果你的应用已经使用了content provider, 请忽略这部分。

创建同步适配器(sync adapter)

学习如何将你的数据传输代码封装到你的组件,使同步适配器框架(sync adapter framework)可以自动运行。

运行同步适配器(sync adapter)

学习如何使用同步适配器框架(sync adapter framewrok)来触发和安排你的数据传输。

时间: 2024-08-11 19:34:17

使用同步适配器(sync adapter)传输数据的相关文章

使用同步适配器(sync adapter)数据传输

在android设备与webserver之间实现数据同步能显著提高你的应用的有用性.让你的应用更受用户的欢迎. 比方说.你的数据上传给webserver,这就有了一个有用的备份.当用户的设备离线工作时,这时从server下载输数据是非常有用的.有些情况下,用户可能会认为通过网页的同步接口来输入或编辑数据更方便,由于这些数据非常快就从同页上同步过来了,他们也可能想在一段时间内採集数据然后再将数据上传到中央存储区. 虽然你能够自己为你的应用设计一套传输数据系统, 你仍应该考虑使用Android的Sy

linux 同步IO: sync、fsync与fdatasync

[linux 同步IO: sync.fsync与fdatasync] 传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘I/O都通过缓冲进行.当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列,而是等待其写满或者当内核需要重用该缓冲区以便存放其他磁盘块数据时,再将该缓冲排入输出队列,然后待其到达队首时,才进行实际的I/O操作.这种输出方式被称为延迟写(delayed write) 延迟写减少了磁盘读写次数,但是却降低了文

linux 同步IO: sync msync、fsync、fdatasync与 fflush

最近阅读leveldb源码,作为一个保证可靠性的kv数据库其数据与磁盘的交互可谓是极其关键,其中涉及到了不少内存和磁盘同步的操作和策略.为了加深理解,从网上整理了linux池畔同步IO相关的函数,这里做一个罗列和对比.大部分为copy,仅为记录,请各位看官勿喷. 传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘I/O都通过缓冲进行.当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列,而是等待其写满或者当内核需要重用该缓

JAVA学习笔记(四十八)- 适配器类 Adapter

适配器类 Adapter,对接口中的抽象方法进行空实现 import java.awt.Button; import java.awt.Frame; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEve

七、适配器(Adapter)模式--结构模式(Structural Pattern)

适配器模式:把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作. 类的 Adapter模式的结构: 类适配器类图: 由图中可以看出,Adaptee 类没有 Request方法,而客户期待这个方法.为了使客户能够使用 Adaptee 类,提供一个中间环节,即类Adapter类, Adapter 类实现了 Target 接口,并继承 自 Adaptee,Adapter 类的 Request 方法重新封装了Adaptee 的SpecificRequ

设计模式的征途—7.适配器(Adapter)模式

在现实生活中,我们的笔记本电脑的工作电压大多数都是20V,而我国的家庭用电是220V,如何让20V的笔记本电脑能够工作在220V的电压下工作?答案:引入一个电源适配器,俗称变压器,有了这个电源适配器,生活用电和笔记本电脑即可兼容. 在软件开发中,有时候也会存在这种不兼容的情况,我们也可以像电源适配器一样引入一个称之为适配器的角色来协调这些存在不兼容的结构,这种设计方案即称之为适配器模式. 适配器模式(Builder) 学习难度:★★☆☆☆ 使用频率:★★★★☆ 一.木有源码的算法库 Backgr

监听器与适配器 Listener&Adapter

为什么需要Adapter?   简短回答:简化 [事件源] 能注册(addxxxListener)监听对象并发送事件对象 WindowListener listener = .....; frame.addWindowListener(listener); 特定事件 对应 特定的监听器接口(listener interface); public interface WindowListener{ void windowOpened(WindowEvent e); void windowClosi

【安卓笔记】数据适配器(adapter)中的观察者模式

ListView要想显示数据,需要用到数据适配器即Adapter.而当我们删除ListView的某个条目时,数据适配器中的数据源必然发生改变,这时候我们通过调用适配器类提供的notifyDataSetChanged方法通知listview数据发生改变,请求重新绘制. 这其中其实使用了一种比较常见的设计模式,即观察者模式. 在分析数据适配器中涉及到的观察者模式之前,我们先简单了解下什么是观察者模式. 观察者模式的定义:定义对象间的一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象

设计模式——适配器(Adapter)模式

概述 什么是适配器?在我们生活中的适配器比如插头转换器(中标转美标).USB接口转换器(type-c转苹果),电脑电源适配器(交流电转低电压直流)等.像这种将两者有差异的东西通过适配器使他们成为相互适合的东西.在程序世界中,经常存在现有的程序无法直接使用,需要做适当的变换后才能使用的情况,这种用于填补“现有程序”和“所需程序”之间差异的设计模式就是适配器(Adapter)模式.适配器模式有类适配器模式和对象适配器模式两种,前者使用继承,后者使用组合,所以后者比较灵活,推荐使用.下面通过实例对这两