2016-05-22 16 views
0

私は自分のプロジェクトに、指定されたURLからビデオをダウンロードし、ダウンロードの完了時に環境設定をtrueとして保存するビデオダウンローダークラスを持っています。私はそれが別のクラスで再生のためのビデオをフェッチするのに当てはまる場合、その環境からそのパスをチェックします。保存された設定が取得されない

string isVideoDownloaded = Utils.readPreferences(ctx, video.getUrl(), "false"); 
      bool isVideoAvailable = Boolean.Parse(isVideoDownloaded); 

ダウンロードが完了すると、以下のコードが実行されます。ファイルは、次のようにダウンロードされている場合ダウンローダ最初にチェック。

    activity.RunOnUiThread(() => 
       { 
        Utils.savePreferences(ctx, video.getUrl(), "true"); 
       }); 

好ましいのは、次のように保存されます。優先順位は以下の方法で確認され、ビデオを再生する前に

 public static void savePreferences(Context activity, string key, string defaultValue) 
    { 
     ISharedPreferences sp = PreferenceManager.GetDefaultSharedPreferences(activity.ApplicationContext); 
     ISharedPreferencesEditor editor = sp.Edit(); 
     editor.Clear(); 
     editor.PutString(key, defaultValue); 
     editor.Commit(); 
    } 

private bool isVideoDownloaded(Video video) 
    { 

     string isVideoDownloaded = Utils.readPreferences(context, video.getUrl(), "false"); 
     bool isVideoAvailable = Boolean.Parse(isVideoDownloaded); 
     if (isVideoAvailable) 
     { 
      //If video is downloaded then hide its progress 
      hideProgressSpinner(video); 
      return true; 
     } 

     showProgressSpinner(video); 
     return false; 
    } 

しかし好みは常にありますfalseとして返されます。私はダウンロードのための私は返済のための同じコンテキストを使用しています。このコードは最初に書きましたが、今度はfalseを返すたびに機能します。 私はアンドロイドの初心者ですので、私がここで間違っていることと解決する方法を理解するのに苦労しています。

私はそれを動作させるために何ができますか?どんな助けもありがとうございます。 savePerference方法で

+0

私はeditor.Clear(この原因を考える)を削除します。この行をコメントしようとするとどうなるのかを確認してください –

+0

@MinaFawzyそれを試してみましょう。 –

+0

うん。私がそれらを保存する前に、環境設定が削除されていた。あなたはこの質問に返信してもらえますか?答えは –

答えて

1

editor.Clear()

public static void savePreferences(Context activity, string key, string defaultValue) 
    { 
     ISharedPreferences sp = PreferenceManager.GetDefaultSharedPreferences(activity.ApplicationContext); 
     ISharedPreferencesEditor editor = sp.Edit(); 
     // editor.Clear(); comment this line of code 
     editor.PutString(key, defaultValue); 
     editor.Commit(); 
    } 
+0

editor.Clear()の代わりにeditor.Commit()をコメントアウトしましたlol –

+0

申し訳ありませんが、 –

関連する問題