﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-on the way-随笔分类-Android</title><link>http://www.blogjava.net/fridayhaha/category/40941.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 20 Jul 2009 07:47:11 GMT</lastBuildDate><pubDate>Mon, 20 Jul 2009 07:47:11 GMT</pubDate><ttl>60</ttl><item><title>创建Content Providers</title><link>http://www.blogjava.net/fridayhaha/archive/2009/07/20/287468.html</link><dc:creator>dgshine</dc:creator><author>dgshine</author><pubDate>Mon, 20 Jul 2009 06:38:00 GMT</pubDate><guid>http://www.blogjava.net/fridayhaha/archive/2009/07/20/287468.html</guid><wfw:comment>http://www.blogjava.net/fridayhaha/comments/287468.html</wfw:comment><comments>http://www.blogjava.net/fridayhaha/archive/2009/07/20/287468.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fridayhaha/comments/commentRss/287468.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fridayhaha/services/trackbacks/287468.html</trackback:ping><description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" />
<link rel="Edit-Time-Data" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_editdata.mso" /><!--[if !mso]>
<style>
v":* {behavior:url(#default#VML);}
o":* {behavior:url(#default#VML);}
w":* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
MicrosoftInternetExplorer4
</xml><![endif]--><!--[if gte mso 9]><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:黑体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:"Arial Black";
panose-1:2 11 10 4 2 1 2 2 2 4;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:""@黑体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Times New Roman";}
h1
{
margin-top:17.0pt;
margin-right:0cm;
margin-bottom:16.5pt;
margin-left:0cm;
text-align:justify;
text-justify:inter-ideograph;
line-height:240%;
page-break-after:avoid;
font-size:22.0pt;
font-family:"Times New Roman";}
h2
{
margin-top:13.0pt;
margin-right:0cm;
margin-bottom:13.0pt;
margin-left:0cm;
text-align:justify;
text-justify:inter-ideograph;
line-height:173%;
page-break-after:avoid;
font-size:16.0pt;
font-family:Arial;
mso-bidi-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{color:purple;
text-decoration:underline;
text-underline:single;}
code
{
font-family:宋体;}
/* Page Definitions */
@page
{}
@page Section1
{size:595.3pt 841.9pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
layout-grid:15.6pt;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{}
@list l0:level1
{
margin-left:39.0pt;
text-indent:-18.0pt;}
@list l1
{}
@list l1:level1
{
text-indent:-18.0pt;}
@list l2
{}
@list l2:level1
{
margin-left:18.0pt;
text-indent:-18.0pt;}
@list l3
{}
@list l3:level1
{
margin-left:39.0pt;
text-indent:-18.0pt;}
@list l4
{}
@list l4:level1
{
margin-left:42.0pt;
text-indent:-21.0pt;
font-family:Wingdings;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.0pt;
font-family:"Times New Roman";}
</style>
<![endif]-->
<h1><span style="font-family: 宋体; color: blue;">创建</span><span style="color: blue;">Content Providers</span></h1>
<p>2009-07-03 IMTI Haerbin dg</p>
<h2><span style="font-family: 黑体;">目标：</span></h2>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family: 宋体;">创建</span>Content Providers <span style="font-family: 宋体;">，让自己的程序所收集的数据能够被其他应用所访问</span></p>
<h2><span style="font-family: 黑体;">应用案例：</span></h2>
<p><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Service
</span><span style="font-family: 宋体;">以</span>Http<span style="font-family: 宋体;">形式抓取网络地震信息，存入本地</span>SQLite3<span style="font-family: 宋体;">，供本地应用查询，统计，同时以</span>Content Providers<span style="font-family: 宋体;">形式对外提供数据，让另一个基于</span>google<span style="font-family: 宋体;">地图的程序能够根据经纬度在地图上显示地震区域，并且可以向</span><span>Content
Providers</span><span style="font-family: 宋体;">发起查询得到经纬度</span></p>
<h2><span style="font-family: 黑体;">问题：</span></h2>
<p style="margin-left: 39pt; text-indent: -18pt;">1，&nbsp;<span style="font-family: 宋体;">怎么创建</span>Content Providers</p>
<p style="margin-left: 39pt; text-indent: -18pt;">2，&nbsp;<span style="font-family: 宋体;">我们的程序怎么经由</span>Content Providers<span style="font-family: 宋体;">访问数据</span></p>
<p style="margin-left: 39pt; text-indent: -18pt;"><em><span style="font-family: 宋体;">别人的程序怎么经由</span>Content Providers</em><em><span style="font-family: 宋体;">查询我们的数据</span></em></p>
<h2><span style="font-family: 黑体;">关键角色：</span></h2>
<p style="margin-left: 39pt; text-indent: -18pt;">1，&nbsp;Content URI</p>
<p style="margin-left: 39pt; text-indent: -18pt;">2，&nbsp;<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">SQLiteOpenHelper</span></p>
<p style="margin-left: 39pt; text-indent: -18pt;">3，&nbsp;<span style="background: silver none repeat scroll 0% 0%; font-size: 10pt; font-family: &quot;Courier New&quot;; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">ContentResolver</span></p>
<p style="margin-left: 39pt; text-indent: -18pt;">4，&nbsp;<span style="background: silver none repeat scroll 0% 0%; font-size: 10pt; font-family: &quot;Courier New&quot;; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">SQLiteQueryBuilder</span></p>
<p style="margin-left: 39pt; text-indent: -18pt;">5，&nbsp;<span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">Content Providers</span><span style="font-size: 10pt; font-family: 宋体; color: black;">工作原理</span></p>
<h2><span style="font-family: 黑体;">介绍</span>&nbsp;</h2>
<p><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Content
Providers </span><span style="font-family: 宋体;">是一种让我们能够在不同应用间共享数据</span> <span style="font-family: 宋体;">的唯一的</span> <span style="font-family: 宋体;">通用化接口机制，通过对底层的数据源进行抽象，</span>Content Providers <span style="font-family: 宋体;">解除了应用程序层和数据层的耦合，这样应用程序可以轻便的在不同数据源之上切换（和</span>DAO<span style="font-family: 宋体;">的理想相当一致）</span></p>
<p><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Content
Providers </span><span style="font-family: 宋体;">使用</span> <span style="font-family: 宋体;">权限控制，通过</span>URI<span style="font-family: 宋体;">模式访问，读写双向，由此，任何具有对应</span>permissions<span style="font-family: 宋体;">（许可、权限）的应用程序都可以增删查改</span>
<span style="font-family: 宋体;">由另一个程序创建的数据</span>---<span style="font-family: 宋体;">包括一些本地化</span>Android<span style="font-family: 宋体;">数据库（<strong><span style="color: red;">也就是说你的程序可以</span></strong></span><strong><span style="color: red;">Happy</span></strong><strong><span style="font-family: 宋体; color: red;">的访问通讯录，浏览器历史等</span></strong><span style="font-family: 宋体;">）</span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family: 宋体;">同样，你可以把你自己的数据源（你开发的饭馆评价系统的数据）发布成</span><span>Content
Providers </span><span style="font-family: 宋体;">，这样其他开发者就可以和你所开发的应用中的数据进行交互，甚至扩展（别人可以在你的数据基础上挖掘开发出菜品评价系统）</span></p>
<h2><span style="font-family: 黑体;">倒叙进行：</span><span style="font-family: 黑体;">如何调用</span>Content Providers</h2>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family: 宋体;">我们可以使用</span>ContentResoler<span style="font-family: 宋体;">访问</span>Content Providers<span style="font-family: 宋体;">，每一个应用上下文</span>android.content.Context(Activity<span style="font-family: 宋体;">是他的子类</span>)<span style="font-family: 宋体;">都持有一个</span>ContentResolver<span style="font-family: 宋体;">引用</span>,<span style="font-family: 宋体;">于是</span></p>
<p><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体;"><br />
</span></p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">ContentResolver&nbsp;cr&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;getContentResolver();就很贴心的出现了</span></div>
<p>&nbsp;</p>
<p>ContentResolver<span style="font-family: 宋体;">我们拿到手后，可以使用</span>query(),insert(),update()<span style="font-family: 宋体;">等方法，但是还有一个</span><strong>URI</strong></p>
<p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </strong><strong><span style="font-family: 宋体;">备注：</span></strong><span>content
URI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
</span></p>
<p><span><!--[if gte vml 1]>
<![endif]--></span>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" />
<link rel="Edit-Time-Data" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_editdata.mso" /><!--[if !mso]>
<style>
v":* {behavior:url(#default#VML);}
o":* {behavior:url(#default#VML);}
w":* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
MicrosoftInternetExplorer4
</xml><![endif]--><!--[if gte mso 9]><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Times New Roman";}
/* Page Definitions */
@page
{}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.0pt;
font-family:"Times New Roman";}
</style>
<![endif]--><span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;"><!--[if gte vml 1]>
<![endif]--></span></p>
<p style="margin-left: 36pt; text-align: left; text-indent: -18pt;" align="left"><span style="font-size: 7.5pt; font-family: &quot;Arial Black&quot;; color: black;"><span><img alt="" src="http://www.blogjava.net/images/blogjava_net/fridayhaha/uri.jpg" width="538" height="89" /><br />
</span></span></p>
<p style="margin-left: 36pt; text-align: left; text-indent: -18pt;" align="left"><span style="font-size: 7.5pt; font-family: &quot;Arial Black&quot;; color: black;"><span>A.<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span style="font-size: 7.5pt; font-family: 宋体; color: black;">标准的前缀，不可以修改</span></p>
<p style="margin-left: 36pt; text-align: left; text-indent: -18pt;" align="left"><span style="font-size: 7.5pt; font-family: &quot;Arial Black&quot;; color: black;"><span>B.<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span style="font-size: 7.5pt; font-family: 宋体; color: black;">标识部分，对于第三方应用（用户自己开发的应用），此处应该使用完整的包名类名来保证唯一性，其实是对应在</span><span style="font-size: 7.5pt; font-family: &quot;Arial Black&quot;; color: black;">manifest.xml</span><span style="font-size: 7.5pt; font-family: 宋体; color: black;">中</span><span style="font-size: 7.5pt; font-family: &quot;Arial Black&quot;; color: black;">&lt;provider&gt;</span><span style="font-size: 7.5pt; font-family: 宋体; color: black;">节点的</span><span style="font-size: 7.5pt; font-family: &quot;Arial Black&quot;; color: black;">authorities</span><span style="font-size: 7.5pt; font-family: 宋体; color: black;">属性值</span><span style="font-size: 7.5pt; font-family: &quot;Arial Black&quot;; color: black;">&lt;provider
class="TransportationProvider"
authorities="com.example.transportationprovider" /&gt; </span></p>
<p style="margin-left: 36pt; text-align: left; text-indent: -18pt;" align="left"><span style="font-size: 7.5pt; font-family: &quot;Arial Black&quot;; color: black;"><span>C.<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span style="font-size: 7.5pt; font-family: 宋体; color: black;">是</span><span style="font-size: 7.5pt; font-family: &quot;Arial Black&quot;; color: black;">content providers</span><span style="font-size: 7.5pt; font-family: 宋体; color: black;">用来确定是何种数据请求的，这个可以没有，也可以有多个，如果</span><span style="font-size: 7.5pt; font-family: &quot;Arial Black&quot;; color: black;">content provider</span><span style="font-size: 7.5pt; font-family: 宋体; color: black;">仅提供一种类型的数据</span><span style="font-size: 7.5pt; font-family: &quot;Arial Black&quot;; color: black;">(</span><span style="font-size: 7.5pt; font-family: 宋体; color: black;">只有</span><span style="font-size: 7.5pt; font-family: &quot;Arial Black&quot;; color: black;">trains</span><span style="font-size: 7.5pt; font-family: 宋体; color: black;">，例如咱们这个例子</span><span style="font-size: 7.5pt; font-family: &quot;Arial Black&quot;; color: black;">)</span><span style="font-size: 7.5pt; font-family: 宋体; color: black;">，那么此段可以省略。如果可以提供几种类型的数据，</span><span style="font-size: 7.5pt; font-family: 宋体; color: black;">那么就可能形如：</span><span style="font-size: 7.5pt; font-family: &quot;Arial Black&quot;; color: black;"> "land/bus, land/train, sea/ship, and
sea/submarine" </span><span style="font-size: 7.5pt; font-family: 宋体; color: black;">。</span></p>
<p style="margin-left: 36pt; text-align: left; text-indent: -18pt;" align="left"><span style="font-size: 7.5pt; font-family: &quot;Arial Black&quot;; color: black;"><span>D.<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span style="font-size: 7.5pt; font-family: 宋体; color: black;">被指定的记录，一般是被请求记录的</span><span style="font-size: 7.5pt; font-family: &quot;Arial Black&quot;; color: black;">id</span><span style="font-size: 7.5pt; font-family: 宋体; color: black;">值，如果被申请使用指定类型的所有数据</span><span style="font-size: 7.5pt; font-family: 宋体; color: black;">，那么形如</span><span style="font-size: 7.5pt; font-family: &quot;Arial Black&quot;; color: black;">content://com.example.transportationprovider/trains
</span></p>
<p><span style="font-family: 宋体;">需要关心，作为</span>ContentResolver<span style="font-family: 宋体;">，需要使用</span>URI<span style="font-family: 宋体;">来告诉</span>Android <span style="font-family: 宋体;">想要和哪一个</span>ContentProvider<span style="font-family: 宋体;">交互（调用）</span></p>
<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">1</span>&nbsp;<span style="color: #008000;">//</span><span style="color: #008000;">返回所有的地震信息</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">2</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">3</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;Cursor&nbsp;c&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;cr.query(EarthquakeProvider.CONTENT_URI,&nbsp;PROJECTION,&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">null</span><span style="color: #000000;">,&nbsp;EarthquakeProvider.DEFAULT_SORT_ORDER);</span></div>
<p style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: 宋体; color: black;">其中</span></p>
<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">1</span>&nbsp;<span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;staticfinal&nbsp;Uri&nbsp;CONTENT_URI&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;Uri<br />
</span><span style="color: #008080;">2</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">3</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.parse(</span><span style="color: #000000;">"</span><span style="color: #000000;">content://com.paad.provider.Earthquake/earthquakes</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">4</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">5</span>&nbsp;<span style="color: #000000;">Content&nbsp;Provider&nbsp;的URI&nbsp;是在AndroidManifest.xml&nbsp;中声明的，如下：<br />
</span><span style="color: #008080;">6</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">7</span>&nbsp;<span style="color: #000000;">&lt;!--</span><span style="color: #000000;">&nbsp;注册ContentProvider&nbsp;</span><span style="color: #000000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">8</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">provider&nbsp;android:name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">.earthquake.EarthquakeProvider</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;android:authorities</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">com.paad.provider.Earthquake</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">/&gt;</span></div>
<p style="text-align: left;" align="left"><strong><span style="font-size: 10pt; font-family: 宋体; color: teal;">可见，</span></strong><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f007f;">authorities</span></strong><strong><span style="font-size: 10pt; font-family: 宋体; color: teal;">是一个标识，是我们自定义的</span></strong><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: teal;">,</span></strong><strong><span style="font-size: 10pt; font-family: 宋体; color: teal;">大多</span></strong><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: teal;">Content Providers</span></strong><strong><span style="font-size: 10pt; font-family: 宋体; color: teal;">都定义一个</span></strong><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: teal;">CONTENT_URI</span></strong><strong><span style="font-size: 10pt; font-family: 宋体; color: teal;">属性</span></strong><strong><span style="font-size: 10pt; font-family: 宋体; color: teal;">值存储</span></strong><strong><span style="font-size: 10pt; font-family: 宋体; color: teal;">对应</span></strong><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: teal;">xml</span></strong><strong><span style="font-size: 10pt; font-family: 宋体; color: teal;">中声明的</span></strong><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f007f;">authorities&nbsp;</span></strong><strong><span style="font-size: 10pt; font-family: 宋体; color: #7f007f;">，这样方便我们随时取用</span></strong></p>
<p style="text-align: left;" align="left"><strong>&nbsp;</strong></p>
<p style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: 宋体; color: #7f007f;">通常</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f007f;"> Content Providers </span><span style="font-size: 10pt; font-family: 宋体; color: #7f007f;">展现两种形式的</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f007f;">URI</span><span style="font-size: 10pt; font-family: 宋体; color: #7f007f;">入口，一个对应查询所有的请求，另一个对应查询单条记录</span></p>
<p style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: 宋体; color: #7f007f;">查询所有记录的</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f007f;">URI:</span></p>
<p style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f007f;">&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;">content://com.paad.provider.Earthquake/earthquakes</span></p>
<p style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: 宋体; color: #7f007f;">查询单条记录的</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f007f;">URI:</span></p>
<p style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;;">content://com.paad.provider.Earthquake/earthquakes/#</span></p>
<h2><span style="font-family: 黑体;">创建</span>Content Providers <span style="font-family: 黑体;">步骤</span></h2>
<p style="margin-left: 18pt; text-align: left; text-indent: -18pt;" align="left"><span style="font-size: 10pt; font-family: 宋体; color: black;">继承</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">ContentProvider</span></p>
<p style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10pt; font-family: 宋体; color: black;">重写</span><span style="background: silver none repeat scroll 0% 0%; font-size: 10pt; font-family: &quot;Courier New&quot;; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">onCreate</span><span style="background: silver none repeat scroll 0% 0%; font-size: 10pt; font-family: 宋体; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">，</span><span style="background: silver none repeat scroll 0% 0%; font-size: 10pt; font-family: &quot;Courier New&quot;; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">update</span><span style="font-size: 10pt; font-family: 宋体; color: black;">，</span><span style="background: silver none repeat scroll 0% 0%; font-size: 10pt; font-family: &quot;Courier New&quot;; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">query</span><span style="font-size: 10pt; font-family: 宋体; color: black;">，</span><span style="background: silver none repeat scroll 0% 0%; font-size: 10pt; font-family: &quot;Courier New&quot;; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">insert</span><span style="font-size: 10pt; font-family: 宋体; color: black;">，</span><span style="background: silver none repeat scroll 0% 0%; font-size: 10pt; font-family: &quot;Courier New&quot;; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">delete</span><span style="font-size: 10pt; font-family: 宋体; color: black;">，</span><span style="background: silver none repeat scroll 0% 0%; font-size: 10pt; font-family: &quot;Courier New&quot;; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">getType</span><span style="font-size: 10pt; font-family: 宋体; color: black;">回调方法，当应用程序用</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">ContentResolver.insert()</span><span style="font-size: 10pt; font-family: 宋体; color: black;">等操作时，此处的函数被调用</span></p>
<p style="margin-left: 18pt; text-align: left; text-indent: -18pt;" align="left"><span style="font-size: 10pt; font-family: 宋体; color: black;">定义</span><code><span style="font-size: 12pt; font-family: &quot;Courier New&quot;;">public static final <a href="../../android-sdk-windows-1.0_r1/docs/reference/android/net/Uri.html"><span style="font-size: 10.5pt;">Uri</span></a> </span></code><span style="font-family: &quot;Courier New&quot;;">&nbsp;CONTENT_URI</span><span style="font-family: 宋体;">属性</span><span style="font-family: 宋体;">，此变量代表你的</span><span style="font-family: &quot;Courier New&quot;;">ContentProvider</span><span style="font-family: 宋体;">能够处理的</span><span style="font-family: &quot;Courier New&quot;;"> URI </span><span style="font-family: 宋体;">，必须是唯一的，（实际是引用</span><span style="font-family: &quot;Courier New&quot;;">AndroidManifest.xml</span><span style="font-family: 宋体;">中的定义），</span></p>
<p style="text-align: left;" align="left"><span style="font-family: &quot;Courier New&quot;;">&nbsp;&nbsp;&nbsp; </span><br />
</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">1</span>&nbsp;<span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;staticfinal&nbsp;Uri&nbsp;CONTENT_URI&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;Uri<br />
</span><span style="color: #008080;">2</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">3</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.parse(</span><span style="color: #000000;">"</span><span style="color: #000000;">content://com.paad.provider.Earthquake/earthquakes</span><span style="color: #000000;">"</span><span style="color: #000000;">);</span></div>
<p style="margin-left: 18pt; text-align: left; text-indent: -18pt;" align="left"><span style="font-size: 10pt; font-family: 宋体; color: black;">构建数据存储系统，我们可以使用文件存储或是</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">SQLite</span><span style="font-size: 10pt; font-family: 宋体; color: black;">数据库，或其他</span></p>
<p style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp; </span><span style="font-size: 10pt; font-family: 宋体; color: black;">针对</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">SQLite3</span><span style="font-size: 10pt; font-family: 宋体; color: black;">，我们的步骤如下：</span></p>
<p style="margin-left: 42pt; text-align: left; text-indent: -21pt;" align="left"><span style="font-size: 10pt; font-family: Wingdings; color: black;"><span>l<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span style="font-size: 10pt; font-family: 宋体; color: black;">定义内部类</span><span style="background: silver none repeat scroll 0% 0%; font-size: 10pt; font-family: &quot;Courier New&quot;; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">earthquakeDatabaseHelper</span><span style="font-size: 10pt; font-family: 宋体; color: black;">继承</span><span style="background: silver none repeat scroll 0% 0%; font-size: 10pt; font-family: &quot;Courier New&quot;; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">SQLiteOpenHelper</span><span style="font-size: 10pt; font-family: 宋体; color: black;">，并重写</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">onCreate(SQLiteDatabase db)</span><span style="font-size: 10pt; font-family: 宋体; color: black;">和</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> &nbsp;&nbsp;&nbsp; onUpgrade(SQLiteDatabase db, </span><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">int</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> oldVersion, </span><strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: #7f0055;">int</span></strong><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;"> newVersion)</span><span style="font-size: 10pt; font-family: 宋体; color: black;">方法</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp; </span><span style="font-size: 10pt; font-family: 宋体; color: black;">，</span><span style="background: silver none repeat scroll 0% 0%; font-size: 10pt; font-family: &quot;Courier New&quot;; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">earthquakeDatabaseHelper</span><span style="font-size: 10pt; font-family: 宋体; color: black;">的作用是封装了创建数据库、更新数据库版本的操作</span></p>
<p style="margin-left: 42pt; text-align: left; text-indent: -21pt;" align="left"><span style="font-size: 10pt; font-family: Wingdings; color: black;"><span>l<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span style="font-size: 10pt; font-family: 宋体; color: black;">对于</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">query()</span><span style="font-size: 10pt; font-family: 宋体; color: black;">，我们在其内部依赖</span><span style="background: silver none repeat scroll 0% 0%; font-size: 10pt; font-family: &quot;Courier New&quot;; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">Cursor SQLiteQueryBuilder</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">.query()</span><span style="font-size: 10pt; font-family: 宋体; color: black;">发送查询，对于其他</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">insert,update,delete</span><span style="font-size: 10pt; font-family: 宋体; color: black;">我们直接借助</span><span style="background: silver none repeat scroll 0% 0%; font-size: 10pt; font-family: &quot;Courier New&quot;; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">SQLiteDatabase</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">.insert</span><span style="font-size: 10pt; font-family: 宋体; color: black;">等完成</span></p>
<p style="margin-left: 42pt; text-align: left; text-indent: -21pt;" align="left"><span style="font-size: 10pt; font-family: Wingdings; color: black;"><span>l<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span style="font-size: 10pt; font-family: 宋体; color: black;">在</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">Content Provider</span><span style="font-size: 10pt; font-family: 宋体; color: black;">的</span><span style="background: silver none repeat scroll 0% 0%; font-size: 10pt; font-family: &quot;Courier New&quot;; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">onCreate</span><span style="background: blue none repeat scroll 0% 0%; font-size: 10pt; font-family: &quot;Courier New&quot;; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">(</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">)</span><span style="font-size: 10pt; font-family: 宋体; color: black;">中，我们做如下初始化</span></p>
<p style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; </span><br />
</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">1</span>&nbsp;<span style="color: #000000;">Context&nbsp;context&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;getContext();<br />
</span><span style="color: #008080;">2</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">3</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;earthquakeDatabaseHelper&nbsp;dbHelper;<br />
</span><span style="color: #008080;">4</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbHelper&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;earthquakeDatabaseHelper(context,&nbsp;DATABASE_NAME,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">,DATABASE_VERSION);<br />
</span><span style="color: #008080;">6</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;earthquakeDB&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;dbHelper.getWritableDatabase();<br />
</span><span style="color: #008080;">8</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;(earthquakeDB&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">)&nbsp;</span><span style="color: #000000;">?</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">&nbsp;:&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;</span></div>
<p style="margin-left: 18pt; text-align: left; text-indent: -18pt;" align="left"><span style="font-size: 10pt; font-family: 宋体; color: black;">定义我们的查询时所会用到的列名，一般我们会把数据库中表的所有列名都定义成常量，方便查询时</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">Cursor</span><span style="font-size: 10pt; font-family: 宋体; color: black;">提取值</span></p>
<p style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp; </span><br />
</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;Column&nbsp;Names&nbsp;表中列名</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;KEY_ID&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">_id</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;KEY_DATE&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">date</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;KEY_DETAILS&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">details</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;String&nbsp;KEY_LOCATION_LAT&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">latitude</span><span style="color: #000000;">"</span><span style="color: #000000;">;</span><span style="color: #008000;">//</span><span style="color: #008000;">&#8230;&#8230;</span></div>
<p style="margin-left: 18pt; text-align: left; text-indent: -18pt;" align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">URI </span><span style="font-size: 10pt; font-family: 宋体; color: black;">数据请求来了，作为</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">Content Provider</span><span style="font-size: 10pt; font-family: 宋体; color: black;">的开发者你需要告诉</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">Conent Provider </span><span style="font-size: 10pt; font-family: 宋体; color: black;">怎么判断</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">URI</span><span style="font-size: 10pt; font-family: 宋体; color: black;">想要哪种数据，这里需借助</span><span style="background: silver none repeat scroll 0% 0%; font-size: 10pt; font-family: &quot;Courier New&quot;; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">UriMatcher</span></p>
<p style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">&nbsp;&nbsp;&nbsp; </span><br />
</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;UriMatcher&nbsp;uriMatcher;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;Allocate&nbsp;the&nbsp;UriMatcher&nbsp;object,&nbsp;where&nbsp;a&nbsp;URI&nbsp;ending&nbsp;in&nbsp;&#8216;earthquakes&#8217;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;will&nbsp;correspond&nbsp;to&nbsp;a&nbsp;request&nbsp;for&nbsp;all&nbsp;earthquakes,&nbsp;and&nbsp;&#8216;earthquakes&#8217;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;with&nbsp;a&nbsp;trailing&nbsp;&#8216;/[rowID]&#8217;&nbsp;will&nbsp;represent&nbsp;a&nbsp;single&nbsp;earthquake&nbsp;row.</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uriMatcher&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;UriMatcher(UriMatcher.NO_MATCH);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;匹配查询所有com.paad.provider.Earthquake</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uriMatcher.addURI(</span><span style="color: #000000;">"</span><span style="color: #000000;">com.paad.provider.Earthquake</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">earthquakes</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;QUAKES);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;匹配查询单个</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uriMatcher.addURI(</span><span style="color: #000000;">"</span><span style="color: #000000;">com.paad.provider.Earthquake</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">earthquakes/#</span><span style="color: #000000;">"</span><span style="color: #000000;">,QUAKE_ID);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<p style="text-align: left;" align="left"><span style="font-size: 10pt; font-family: 宋体; color: black;">这个变量</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">Content Provider </span><span style="font-size: 10pt; font-family: 宋体; color: black;">在</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">getType()</span><span style="font-size: 10pt; font-family: 宋体; color: black;">中会使用进行</span><span style="font-size: 10pt; font-family: &quot;Courier New&quot;; color: black;">URI</span><span style="font-size: 10pt; font-family: 宋体; color: black;">匹配</span></p>
<img src ="http://www.blogjava.net/fridayhaha/aggbug/287468.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fridayhaha/" target="_blank">dgshine</a> 2009-07-20 14:38 <a href="http://www.blogjava.net/fridayhaha/archive/2009/07/20/287468.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>