在Android的组件中,有几次我遇到了一个句子
...可以由系统实例化
特别是here
内容提供商是否可以由系统实例化 - " true"如果它可以,并且"假"如果不是
那对于Content Provider来说意味着什么呢? (BTW Content Provider
组件对我来说是新手 - 我知道其他Android组件)
Content Provider
由系统实例化?答案 0 :(得分:0)
我无法分别回答3个问题,因为它们以某种方式交叉, 所以这里有一个小答案,我希望它是正确的,我希望你觉得它很有用:
截至何时/何时
你不应该使用new
你必须使用创建实例的getContentResolver()
,然后你可以调用正确的方法:query()
,update()
,...
getContentResolver().update(...);
益处
如果CP位于其他应用中,并标记为公开
android:exported="true"
然后你可以在你的应用程序中使用它,但是怎么样? 并使用我的意思是查询/删除/更新...
如果您想使用new
,则必须在项目中包含此CP的类/ jar /资源...这可能很难或不可能。而#34;系统"为您执行此操作 getContentResolver()提供(对于发布商和消费者):
答案 1 :(得分:0)
所有Android应用程序组件Activity,Service,ContentProvider和BroadcastReceiver(动态除外)都会在请求到来时由系统实例化。
例如:
当有人使用startActivity()
Intent
时,系统会实例化活动
类似地,当有人通过传递相应的URI使用ContentResolver.query或ContentResolver.insert请求访问ContentProvider提供的数据时,系统也会实例化ContentProvider
。