我如何在Android中存储用户数据,并使其在应用程序更新的情况下保持不变?

我如何在Android中存储用户数据,并使其在应用程序更新的情况下保持不变?,android,android-preferences,android-sdcard,Android,Android Preferences,Android Sdcard,我有一个应用程序(设计为脱机工作),其中大量条目存储在数据库中,用户输入的值存储在数据库中一列中的每个条目上。用户在使用应用程序时仅修改这些值 但是当我推送一个应用程序更新时,用户会丢失他输入的所有值。我如何解决这个问题?(我还希望数据库对Android应用程序是私有的)。您可以创建如下DB: /** * Open the test database. If it cannot be opened, try to create a new * instance of th

我有一个应用程序(设计为脱机工作),其中大量条目存储在数据库中,用户输入的值存储在数据库中一列中的每个条目上。用户在使用应用程序时仅修改这些值


但是当我推送一个应用程序更新时,用户会丢失他输入的所有值。我如何解决这个问题?(我还希望数据库对Android应用程序是私有的)。

您可以创建如下DB:

  /**
     * Open the test database. If it cannot be opened, try to create a new
     * instance of the database. If it cannot be created, throw an exception to
     * signal the failure
     * 
     * @return this (self reference, allowing this to be chained in an
     *         initialization call)
     * @throws SQLException
     *             if the database could be neither opened or created
     */
    public TestDBAdapter open() throws SQLException {
    mDbHelper = new DatabaseHelper(mCtx);
    mDb = mDbHelper.getWritableDatabase();
    dbVersionWebiDBAdapter = mDbHelper.dbVersion;
    return this;
    }
这非常有效,任何更新都可以获取数据。您还可以使用某种DB版本控制,以便使用新的更新轻松地更新数据库


只有当用户转到设置菜单并在那里卸载应用程序或数据时,才会删除此数据库。应用程序的更新加载将保留数据库。

一种解决方案是将用户更改写入另一个公共外部数据库,并参考此数据库的id,这样当卸载应用程序时,外部数据库将保持不变,并且我可以在新版本应用程序首次运行时恢复逻辑。这是最好的解决方案吗?