注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。

原文链接:http://developer.android.com/training/sync-adapters/index.html


在一台Android设备和网络服务器之间同步数据,可以让你的应用更加实用,更加吸引用户的注意。例如,将数据传输到服务器可以实现一个有用的备份,而将数据从服务器中获取可以让用户随时随地都能使用你的应用。在一些情况中,用户可能会发觉在线编辑他们的数据并将其发送到设备上,会是一件很方便的事情;或者他们有时会希望将收集的数据上传到一个统一的存储区域中。

尽管你可以设计你自己的系统来实现你应用中的数据传输,但你可以考虑一下使用Android的同步适配器框架(Android's sync adapter framework)。这个框架可以帮助管理及自动传输数据,并且协调不同应用间的同步问题。当你使用这个框架时,你可以利用它的一些特性,而这些特性可能是你自己设计的传输方案中所没有的:

插件架构(Plug-in architecture):

允许你以可调用组件的形式,将传输代码添加到系统中。

自动执行(Automated execution):

允许你可以给予不同的准则自动地执行数据传输,包括数据变更,经过的时间,传输时间等。另外,系统会把当前无法执行的传输添加到一个队列中,并且在合适的时候运行它们。

自动网络监测(Automated network checking):

系统只在有网络连接的时候才会运行数据传输。

提升电池使用效率:

允许你将所有的数据传输统一地进行批量传输,这样的话数据传输任务会在同一时间运行。你的应用的数据传输也会和其它应用的传输任务相结合,并一起传输。这样做可以减少系统连接网络的次数,进而减少电量的使用。

账户管理和授权:

如果你的应用需要用户登录,那么你可以将账户管理和授权的功能集成到你的数据传输中。

本系列课程将向你展示如何创建一个同步适配器,以及它所封装和绑定的服务(Service),如何提供其它组件来帮助你将同步适配器添加到框架中,以及如何通过不同的方法来运行同步适配器。

Note:

同步适配器是异步执行的,所以你应该在期望它可以定期地有效地但不是瞬间地传输数据时使用它。如果你想要实时地传输数据,那么你应该在中AsyncTaskIntentService完成这一任务。


课程:

【Android Developers Training】 93. 创建一个空验证器

【Android Developers Training】 94. 创建一个空内容提供器(Content Provider)

【Android Developers Training】 95. 创建一个同步适配器

【Android Developers Training】 96. 运行一个同步适配器


样例代码:

BasicSyncAdapter.zip

【Android Developers Training】 92. 序言:使用同步适配器传输数据的更多相关文章

  1. 【Android Developers Training】 94. 创建一个空内容提供器(Content Provider)

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  2. 【Android Developers Training】 93. 创建一个空验证器

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  3. 【Android Developers Training】 96. 运行一个同步适配器

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  4. 【Android Developers Training】 95. 创建一个同步适配器

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  5. 【Android Developers Training】 87. 序言:同步到云

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  6. 【Android Developers Training】 5. 序言:添加Action Bar

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  7. 【Android Developers Training】 0. 序言:构建你的第一个应用

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  8. 【Android Developers Training】 102. 序言:让你的应用获知地点

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  9. 【Android Developers Training】 97. 序言:访问通讯录数据

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

随机推荐

  1. 在ASP.NET Core 中使用Cookie中间件

    在ASP.NET Core 中使用Cookie中间件 ASP.NET Core 提供了Cookie中间件来序列化用户主题到一个加密的Cookie中并且在后来的请求中校验这个Cookie,再现用户并且分 ...

  2. 为什么非全站升级HTTPS不可?

    升级HTTPS已经是大势所趋,但仍有大量互联网企业犹豫是否要全站升级HTTPS,为此本文梳理了全站升级HTTPS与部分升级HTTPS的优劣势对比,来判断是否真的有必要进行全站HTTPS升级. HTTP ...

  3. 【JAVAWEB学习笔记】08_MySQL&JDBC回顾

    今天晨读单词: CRUD:增删改查(create/read/update/delete)create:新增项目read:查询update:修改delete:删除 desc 表名:查看表结构drop:删 ...

  4. My-Blog搭建过程:如何让一个网站从零到可以上线访问

    文章简述 5月13号的时候,上线了自己的个人博客网站:http://blog.hanshuai.xin,随后在平台上发布了一篇关于My-Blog的介绍博客<Docker+SpringBoot+M ...

  5. 《安卓网络编程》之第七篇 java编写Service程序

    import java.io.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.net. ...

  6. dockerfile语法

    dockerfiles的指令不区分大小写,但约定为全部大写 dockerfiles支持如下语法命令: 1.FROM <image name> 所有的dockerfile都必须以from命令 ...

  7. [原创]MongoDB综合实例一

    CentOS-6.5单机实现mongoDB分片 环境:1)CentOS 6.5系统      2)IP:本机3)MongoDB:MongoDB-linux-x86_64-2.6.1 实现:两个副本集s ...

  8. ATmega8仿真——外部中断的学习

    前面我们学习了ATmega8的I/O口作为通用数字输入/输出口来用时对LED数码管控制和扫描按键的应用: 但ATmega8多数的I/O口都是复用口,除了作为通用数字I/O使用,还有其第二功能,这里我们 ...

  9. 传统平面广告已OUT出局,VR全景异军突起——VR全景智慧城市

    VR,近两年异军突起的"黑科技".从1935年斯坦利·温鲍姆首次在小说中描述VR眼镜,到如今PC头盔.VR分体机以及VR一体机的相继问世,VR自身已从虚拟走向现实.而当硬件迭代逐步 ...

  10. js写插件教程

    <!doctype html><html lang="en"><head>    <meta charset="UTF-8&qu ...