Tag: contentprovider

如何使用支持FileProvider共享内容到其他应用程序?

我正在寻找一种方法,使用Android支持库的FileProvider与外部应用程序正确共享(而不是打开)内部文件。 以文档为例, <provider android:name="android.support.v4.content.FileProvider" android:authorities="com.example.android.supportv4.my_files" android:grantUriPermissions="true" android:exported="false"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/my_paths" /> </provider> 并使用ShareCompat将文件共享到其他应用程序,如下所示: ShareCompat.IntentBuilder.from(activity) .setStream(uri) // uri from FileProvider .setType("text/html") .getIntent() .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) 不起作用,因为FLAG_GRANT_READ_URI_PERMISSION只授予在意图data上指定的Uri的权限,而不是EXTRA_STREAM额外的值(由setStream设置)。 我试图通过为提供者设置android:exported为true来危害安全性,但FileProvider内部检查自身是否被导出,如果是,则抛出exception。

数据更改后CursorLoader不更新

我创build了一个小应用程序,试图了解LoaderManager和CursorLoader类的function。 我已经在我的FragmentActivity类上实现了LoaderCallbacks<Cursor> ,并且一切正常,除了当我通过ContentResolver.update()或ContentResolver.insert()方法更新数据时, onLoadFinished()不会被调用,并且作为结果我的数据不会更新。 我有一个自定义ContentProvider,我想知道如果问题是在我的ContentProvider不通知数据改变或其他。

没有ContentProvider的CursorLoader用法

Android SDK文档说startManagingCursor()方法是depraated: 此方法已弃用。 用LoaderManager代替新的CursorLoader类; 这也可以通过Android兼容性包在较老的平台上使用。 此方法允许活动根据活动的生命周期来pipe理给定游标的生命周期。 也就是说,当活动停止时,它会自动调用给定游标上的deactivate(),当它稍后重新启动时,它会为你调用requery()。 当活动被破坏时,所有被pipe理的游标将被自动closures。 如果您的目标是HONEYCOMB或更高版本,请考虑使用LoaderManager,而不是使用getLoaderManager() 所以我想用CursorLoader 。 但是当我需要CursorLoader构造函数中的URI时,如何使用它与自定义的CursorAdapter和没有ContentProvider ?