我正在构建一个壁纸应用程序。我有一个设置壁纸的按钮。我想做的是检查壁纸是否已下载,如果是,请设置壁纸 - 如果没有,请下载并设置壁纸。
我检查是否存在带有 ID(例如26748.jpg
)的文件,如果是,我成功设置壁纸,如果不存在,我下载它 - 但我无法设置它。
我有一个 BroadcastReceiver 设置:
<receiver android:name=".SinglePhotoActivity$CheckDownloadComplete">
<intent-filter>
<action android:name="android.intent.action.DOWNLOAD_COMPLETE"/>
</intent-filter>
</receiver>
显示一个简单的保存消息:
public static class CheckDownloadComplete extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Saved!", Toast.LENGTH_SHORT).show();
}
}
问题是我有两种设置壁纸的方法:一种是已经下载了壁纸,另一种是没有下载。我做了一些研究,发现这种类型的广播接收器实际上不能包含任何意图附加内容。我唯一能做的就是在我的 DownloadManager 的请求中设置一个描述,然后在onReceive
.
所以,如果图像已经下载,我想显示一个简单的 Toast。如果没有,请下载它,然后在下载完成后在OnReceive中运行我的setWallpaper代码。
有没有更熟练的方法来做到这一点?