如何使用ContentProvider类实现隐式Intent

举例说明:

1、定义对应的ContentProviderTestProvider,继承ContentProvider

类里面需要实现一系列的abstract方法,如:OnCreategetTypeinsert…

 

2、在应用程序的AndroidManifest.xml中加入<provider>标签,例如:

<provider android:name="TestProvider"

        android:authorities="com.android.test.settings"/>

 

android:name是指对应ContentProvider的类名,也就是所建的TestProvider    

android:authorities是标识部分,为了保证唯一性,这里使用完整的包名和类名

 

3、在想要调用的activity所对应应用的AndroidManifest.xml中,把该activityintent-filter添加上对Data的要求

 

4、在StartActivity(intent)之前,设定该intent对应的action(调用setAction()指定)和data(调用setData(Uri.parse(content:// com.android.test.settings /test)))。StartActivity之后,Android系统内部就会根据上面Uri里面的com.android.test.settings,去找到对应的TestProvider(根据android:authorities,然后再调用getType方法。这样Android系统会根据getType返回的数据类型,以及intentsetAction时制定的action,去启动对应的Activity

阅读更多 登录后自动展开
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页