从 Activity 中调用 Google 播放下载器库

Calling Google Play Downloader Library out of an Activity

我正在尝试在我的应用中使用 MVP 模式的 APK 扩展文件。 因此,我将用于从 APK Expansion Files article 调用 Google Play 下载程序库 (GPDL) 方法的代码放在 Activity 中,而不是放在专门的外观 class 中(XapkDownloader). 它具有方法 startDownload 以及为 onDownloadStateChangedonDownloadProgress 添加侦听器的方法。 XapkDownloader 还实现了 IDownloaderClient 作为内部 class。

显示下载进度的UI是一个Fragment,它的presenter调用XapkDownloader.startDownload。 那里调用 DownloaderClientMarshaller.startDownloadServiceIfRequired returns DOWNLOAD_REQUIRED (没关系)。 然后调用 DownloaderClientMarshaller.CreateStubstub.connect 运行 很好(没有例外)。 但是,IDownloaderClient 实现的方法中的 none 被调用,我在日志中没有看到任何错误。

我怀疑我应该创建 PendingIntent 以传递到 DownloaderClientMarshaller.startDownloadServiceIfRequired,而不是使用 PendingIntent.getActivity,而是以不同的方式。

也许有人可以建议一个不从 Activity.

调用 GPDL 的示例

我发现可以将调用 GPDL 的代码放入任何 class。 我的错误是 AndroidManifest.xml 中的下载器服务声明错误。我的实现是在 "sub-package" 中,声明没有反映出来。