2017-01-20 4 views
2

私は壁紙アプリケーションを構築しています。 壁紙を設定するボタンがあります。 私がしたいのは、壁紙がダウンロードされているかどうかを確認し、壁紙を設定している場合は壁紙をダウンロードし、壁紙をダウンロードして設定することです。WallpaperManagerのブロードキャストレシーバーに特別な意図があります

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(); 
    } 

} 

を問題は、私は壁紙の設定の2種類があるということです:1であれば壁紙は既にダウンロードされており、そうでない場合は1つがダウンロードされます。私はちょっとした調査をしたが、このタイプの放送受信機には、実際には余分な内容が含まれていないことが分かった。私ができる唯一のことは、私のDownloadManagerのリクエストについての記述を設定してからonReceiveの説明をチェックすることです。

画像が既にダウンロードされている場合は、単純なトーストを表示したいと思います。そうでない場合は、それをダウンロードした後、OnReceiveダウンロードが完了した後に私のsetWallpaperコードを実行します。

これを行うにはもう熟練した方法がありますか?

+1

あなたはこのブロードキャスト嘲笑者の中にエクストラを置くことができないとお伝えしましたか? –

答えて

0

壁紙が既にダウンロードされているかどうかを確認してください。

少なくとも2つの列を含むデータベーステーブルを作成します。

1.Downloaded wallpaper url 2.Downloaded image local path(from where you will set it to wallpaper)

壁紙をダウンロードしようとするたびに、urlがすでにtableに存在するかどうかをdbテーブルから確認してください。このため私はsugarormを使用していますが、どのデータベースでも使用できます。あなたはsugarormのようにこれを行うことができます。

DownloadedWallpapers mDownloadedWallpaper = null; 

    try { 
     mDownloadedWallpaper = DownloadedWallpapers.find(DownloadedWallpapers.class, "url=?", imageUrl).get(0); 
    } catch (Exception ex) {} 

    if (mDownloadedWallpaper == null) 
     // run your downloading code here and on download set wallpaper 
    else 
     // run set wallpaper code here 

他のデータベースでも手順は同じです。 URLにdbが存在するかどうかを確認してください。

ダウンロード後、ローカルファイルパスを含むブロードキャストを送信します。

Intent mIntent = new Intent(context,WallpaperReceiver.class); 
mIntent.putExtra("local_path", downloadedFilePath); 
sendBroadcast(mIntent); 

ブロードキャスト受信機では、壁紙設定コードを実行します。

私にとっては、これはクリーンで、動作しやすいソリューションです。歓声:

関連する問題