0

我正在开发 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();
        }
4

1 回答 1

0

您的首选项对象始终为空,因此它将始终转到您制作 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();
        }
于 2012-08-06T06:00:23.140 回答