我正在研究android中的壁纸应用程序,我需要将少量图像从资产复制到SDCARD位置以供应用。但是这个过程必须在第一次应用程序运行时完成。当用户将来使用该应用程序时,一定不会发生。 我计划为此目的使用共享首选项。但没有成功。
我已将首选项初始化为类的私有成员。
private SharedPreferences preferences=null;
private boolean flagCopy;
//USING Shared Preferences FOR COPY ASSETS------
if(preferences!=null){
flagCopy = preferences.getBoolean("COPY_ASSETS", DO_NOT_COPY_ASSESTS);
}else{
preferences =getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("COPY_ASSETS", COPY_ASSESTS); // value to store
editor.commit();
flagCopy = true;
}
if(flagCopy){//IF FLAG IS FALSE THAN COPY THE IMAGES TO SDCARD FROM RES
CopyAssets();
}
答案 0 :(得分:0)
您的首选项对象始终为null,因此它将始终转到您正在进行flagcopy = true的第二部分。见下面的代码
preferences =getPreferences(MODE_PRIVATE);
if(preferences!=null){
flagCopy = preferences.getBoolean("COPY_ASSETS", COPY_ASSETS);
if(flagcopy == COPY_ASSETS){
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("COPY_ASSETS", DO_NOT_COPY_ASSESTS);
editor.commit();
flagCopy = true;
}
if(flagCopy){
CopyAssets();
}