重新安装应用程序后,为什么数据没有被删除。在模拟器上?

时间:2011-11-30 01:16:50

标签: android

我写了一些测试代码来学习如何使用SharedPreferences。该应用程序可以很好地保存数据,但是当我在eclipse上按“run”再次运行应用程序时,控制台窗口说它正在上传,安装和启动应用程序。由于它说再次安装,我希望删除存储在SharedPreferences中的数据。但是,当我进入活动时,旧数据仍然显示。

我的程序运行如下:

  1. 启动画面
  2. 列出具有3个活动选项的菜单活动
  3. 我实施保存功能的目标活动
  4. 以下是该特定活动的代码:

    public class StartingPoint extends Activity {
    /** Called when the activity is first created. */
    
    int counter;
    Button add;
    Button sub;
    TextView display;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    
        setContentView(R.layout.main);
    
        counter=0;
    
        add= (Button) findViewById(R.id.bAdd);
        sub= (Button) findViewById(R.id.bSub);
        display= (TextView) findViewById(R.id.tvDisplay);
    
        add.setOnClickListener(new View.OnClickListener() {
    
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                counter++;
                display.setText(""+counter);
                display.setTextSize(counter);
            }
        });
        sub.setOnClickListener(new View.OnClickListener() {
    
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                counter--;
                display.setText(""+counter);
                display.setTextSize(counter);
            }
        });
    
    }
    
    @Override
    protected void onStart() {
        // TODO Auto-generated method stub
        super.onStart();
    
        SharedPreferences prefs = getPreferences(0); 
        int getfromfile = prefs.getInt("counter_store", 1);
        counter=getfromfile;
        display.setText(""+getfromfile);
        display.setTextSize(getfromfile);
    }
    
    @Override
    protected void onStop() {
        // TODO Auto-generated method stub
        super.onStop();
    
         SharedPreferences.Editor editor = getPreferences(0).edit();
         editor.putInt("counter_store", counter);
         editor.commit();
    }
    }
    

4 个答案:

答案 0 :(得分:2)

  

由于它说再次安装,我希望删除存储在SharedPreferences中的数据

从Eclipse重新运行应用程序类似于在生产中对应用程序进行升级。与应用程序关联的所有数据都保持不变。

您可以通过“设置”应用程序及其“应用程序”屏幕,以与在手机上使用相同的方式清除模拟器中的旧数据。

答案 1 :(得分:0)

这就是它的工作原理。它安装在以前的安装上。如果要删除所有数据,可以先卸载,也可以从“管理应用程序”中清除数据。

答案 2 :(得分:0)

我想因为在每次对代码进行微小更改并重新运行应用程序时擦除使用共享首选项的应用程序中的某些功能是不可能的。如果要清除数据,请参阅CommonsWare答案。

答案 3 :(得分:0)

用于清除应用数据的最简单/干净的解决方法是使用adb将其卸载。你会在你的sdk中找到adb-e选项适用于模拟器。将-d用于设备。

您可以运行的命令是:

>adb -e uninstall <app_package_name>