Я создаю приложение для обоев. У меня есть кнопка, которая устанавливает обои. Что я хотел бы сделать, так это проверить, загружены ли обои, если да, установить обои, если нет, загрузить и установить обои.
Я проверяю, существует ли файл с идентификатором (например, 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
.
Итак, если изображение уже загружено, я бы хотел отобразить простой тост. Если нет, то загрузите его и после, в OnReceive после завершения загрузки запустите мой код setWallpaper.
Есть ли более опытный способ сделать это?