今天主要学习了这些内容,使用ContentProvider共享数据、从互联网上获取数据,以及上传数据(文件)到互联网上面:
  ContentProvider(内容提供者)
  当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据。虽然使用其他方法也可以对外共享数据,但数据访问方式会因数据存储的方式而不同,如:采用文件方式对外共享数据,需要进行文件操作读写数据;采用sharedpreferences共享数据,需要使用sharedpreferences API读写数据。而使用ContentProvider共享数据的好处是统一了数据访问方式。
  一旦应用继承了ContentProvider类,我们就会把这个应用称为ContentProvider(内容提供者)。
  当应用需要通过ContentProvider对外共享数据时,第一步需要继承ContentProvider并重写下面方法:
  public class PersonContentProvider extends ContentProvider{
  public boolean onCreate()
  public Uri insert(Uri uri, ContentValues values)
  public int delete(Uri uri, String selection, String[] selectionArgs)
  public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs)
  public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)
  public String getType_r(Uri uri)}
  第二步需要在AndroidManifest.xml使用对该ContentProvider进行配置,为了能让其他应用找到该ContentProvider , ContentProvider 采用了authorities(主机名/域名)对它进行唯一标识,你可以把 ContentProvider看作是一个网站(想想,网站也是提供数据者),authorities 就是他的域名:

itcast.provider.personprovider"/>

  Uri代表了要操作的数据,Uri主要包含了两部分信息:1》需要操作的ContentProvider
〖黑软手机资讯频道〗
  
,2》对ContentProvider中的什么数据进行操作,
  当外部应用需要对ContentProvider中的数据进行添加、删除、修改和查询操作时,可以使用ContentResolver 类来完成,要获取ContentResolver 对象,可以使用Activity提供的 getContentResolver_r()方法。
  从互联网上获取数据:利用HttpURLConnection对象,我们可以从网络中获取网页数据,
  从connectionl里面获取输入流,得到了输入流,我们就可以对其进行保存,播放等。
  URL url = new URL("http://photocdn.sohu.com/20100125/Img269812337.jpg");
  HttpURLConnection conn = (HttpURLConnection) url.openConnection();
  conn.setConnectTimeout(5* 1000);
  conn.setRequestMethod("GET");
  if (conn. getResponseCode_r() != 200) throw new RuntimeException("请求url失败");
  InputStream is = conn. getInputStream_r();
  上传数据到互联网:
  不用浏览器,我们也可以上传数据(文件)的哦,我们可以模拟Http请求,利用连接得到输出流,将数据写到输出流:
  HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection();
  conn.setDoOutput(true);//发送POST请求必须设置允许输出
  conn.setUseCaches(false);//不使用Cache
  conn.setRequestMethod("POST");
  conn.setRequestProperty("Connection", "Keep-Alive");//维持长连接
  conn.setRequestProperty("Charset", "UTF-8");
  conn.setRequestProperty("Content-Length", String.valueOf(data.length));
  conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
  DataOutputStream outStream = new DataOutputStream(conn. getOutputStream_r());
  outStream.write(data);
  outStream.flush();
  if( conn. getResponseCode_r() == 200 ){
  String result = readAsString(conn. getInputStream_r(), "UTF-8");
  outStream.close();
  System.out.println(result);
  }

本篇文章来源于 黑软基地-中国最大的黑客软件安全教程下载站! 原文链接:http://www.hackvip.com/mobiwen/html/Mobile_221073.html

Android 开发之 ContentProvider 内容提供者相关推荐

  1. Android组件系列----ContentProvider内容提供者 和 android:authorities

    authorities 是provider所在的包的名字+provider本身定义的名称 ---zgs [正文] 一.ContentProvider简介: ContentProvider内容提供者(四 ...

  2. Android开发之ContentProvider结合LoaderManager加载数据(图文源代码分享)

    ContentProvider作为Android的四大存储方式之一,有着广泛的应用性,它暴露了数据地址,可以让其他应用访问数据,可以用于存储图片.通讯录等信息,这篇博文将详细介绍ContentProv ...

  3. android 53 ContentProvider内容提供者

    ContentProvider内容提供者:像是一个中间件一样,一个媒介一样,可以以标准的增删改差操作对手机的文件.数据库进行增删改差.通过ContentProvider查找sd卡的音频文件,可以提供标 ...

  4. Android 使用ContentProvider(内容提供者)查询手机联系

    在开发应用程序过程中有时候会关联到用户的手机联系人,在Android的为开发者提供了ContentProvider内容提供者来获取手机的联系人,首先我在模拟器中保存了两个联系人如下所示: lisi:电 ...

  5. Android ContentProvider 内容提供者

    ContentProvider 内容提供者,是Android四大组件之一. 一.简述 可以理解为一个特殊的存储数据的类型,它提供了一套标准的接口来获取和操作数据.可以把数据封装到ContentProv ...

  6. Android开发之旅:应用程序基础及组件

    --成功属于耐得住寂寞的人,接下来几篇将讲述Android应用程序的原理及术语,可能会比较枯燥.如果能够静下心来看,相信成功将属于你. 引言 为了后面的例子做准备,本篇及接下来几篇将介绍Android ...

  7. Android开发之旅:android架构

    引言 通过前面两篇: Android 开发之旅:环境搭建及HelloWorld Android 开发之旅:HelloWorld项目的目录结构 我 们对android有了个大致的了解,知道如何搭建and ...

  8. Android开发之TextView高级应用

    Android开发之TextView高级应用 我们平时使用TextView往往让它作为一个显示文字的容器,但TextView的功能并不局限于此.以下就和大家分享一下TextView的一些使用技巧. A ...

  9. Android开发之旅:组件生命周期(二)

    引言 应用程序组件有一个生命周期--一开始Android实例化他们响应意图,直到结束实例被销毁.在这期间,他们有时候处于激活状态,有时候处于非激活状态:对于活动,对用户有时候可见,有时候不可见.组件生 ...

最新文章

  1. zhs16gbk对应mysql_[Oracle] 彻底搞懂Oracle字符集
  2. awk的求和计算使用;awk多个分隔符如何使用?
  3. 让弹出窗口变得“体贴”一些
  4. charles 抓包 (二)
  5. ORACLE MTTR
  6. Linux 系统编程
  7. qt tounicode 崩溃_吐槽大会丨细数那些打块的崩溃瞬间!看看你中了几枪?
  8. Briefly unavailable for scheduled maintenance message after doing automatic upgrade
  9. envi窗口滤波_高光谱ENVI图像处理之滤波
  10. 读贾志鹏线性筛有感 (莫比乌斯函数的应用)
  11. C# 判断文件/文件夹是否存在;
  12. LCD的控制驱动及基与MCU接口的特点
  13. 计算机主机内部结构连接,电脑主机内部结构图详解
  14. 数据库sql优化总结之1-百万级数据库优化方案+案例分析
  15. 获取iv和encryptedData
  16. python爬取雪球网交易数据
  17. C语言zh字符串指针的大小,C语言的一些小技巧,小知识
  18. 车秘android版本最新版本,车秘下载2021安卓最新版_手机app官方版免费安装下载_豌豆荚...
  19. php__file__用法,PHP 的常量__FILE__的用法图解
  20. 神仙打架看不懂?用人话解读NIPS神经网络攻防赛清华三连冠团队模型算法

热门文章

  1. 放弃linux桌面,Linux 应当放弃桌面
  2. 2023苹果内核JAVA原生影视双端修改版源码+附安装教程
  3. 从github下载项目并运行
  4. 微信小程序组件所在页面的生命周期
  5. HTTP请求方法:GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE 说明
  6. 「镁客早报」NASA成立寻找外星人研究小组;CBInsights公布全球32家AI独角兽名单...
  7. 微信小程序通讯录列表
  8. 控制中心可录屏下载_控制中心APP下载-ios12控制中心下载v1.4 安卓版-西西软件下载...
  9. URL编码/解码详解
  10. Ubuntu 20.04安装JRE和JDK