4

他の多くの人と同じように、アプリの「ライト」バージョンと「プロ」バージョンがあります。内部ストレージにあるデータベースを使用します。ユーザーがプロ バージョンを購入して、データベースを失うことなくインストールできるようにしたいと考えています。

部分的な解決策: 複数のアプリで同じデータベースを使用する方法に関する他の投稿を見たことがあります。基本的に、これには次の 2 つのことが必要です。

  1. 両方のマニフェストは、マニフェストで同じ android:sharedUserId を宣言します。
  2. アプリの 1 つは、他のアプリのコンテキストを使用してデータベースを開く必要があります。

私はこれを試してみましたが、はい、うまくいきます!

問題:ライト バージョンをアンインストールすると、データベースが削除されます。これに従ってください: ユーザーはライトバージョンをインストールします。軽量バージョンはデータベースを作成し、彼は喜んでデータを作成してそこに保存します。その後、彼はプロをインストールすることにしました。プロ版はライトで作成されたデータベースにアクセスし、すべて正常に動作します。最後に、Lite はもう必要ないので、Lite をアンストールします。これで、lite バージョンをアンインストールしたときに Android によって db が削除されたため、pro が動作しなくなります。

解決策は? 頭に浮かぶ 1 つの解決策は、データベースを所有する 3 つ目のアプリを用意することです。シンプルにインストールされ、パッケージと同じ名前の「何もしない」アプリです。UI がなく、実際に実行されることはありません。次に、データベースに影響を与えることなく、lite および pro アプリをインストールまたはアンインストールできます。

これは良い考えですか?より良い方法はありますか (db のプロバイダーを作成する以外に)? これが合理的なアプローチである場合、サービスではない UI のないアプリを作成するにはどうすればよいですか?

4

2 に答える 2

3

プロアプリのアプリ内購入を選択したようですが、これも実行可能な解決策である可能性があります.

あなたの投稿から、データベースを含むライトアプリができました。ユーザーがプロ アプリを購入すると、プロ アプリがライト データベースにアクセスして読み書きできるようになります。これらの仮定が正しい場合、次のことを行ってみませんか。

  1. プロ アプリが起動したら、データベースを作成して、プロ アプリが独自のデータベースを持つようにします。

  2. そのデータベースが作成されたら、ライト アプリ データベースが存在するかどうかを確認します。プロ アプリでライト アプリ データベースを開いているため、既にこれを行っていると思います。

  3. ライト アプリ DB が存在する場合は、ライト アプリ DB のデータをプロ アプリ DB に書き込みます。これで、pro db にすべての lite db データが含まれます。プロアプリを使用している間、アプリはライトデータベースではなく、独自のデータベースを呼び出す必要があります。Lite アプリからプロにデータが転送されたので、ユーザーはデータが失われることを心配することなく Lite アプリをアンインストールできます。

  4. lite db が存在しない場合、何も起こらず、pro アプリは独自のデータベース、空のデータ (または事前にロードする必要があるもの) をロードします。

于 2013-06-06T00:08:47.917 に答える
1

サーバーにデータベースを持っていないのはなぜですか。アプリがインストールされているときはいつでも(ライトバージョンまたはプロバージョンに関係なく)、サーバーからデータベースをプルするだけです(存在する場合は既存のものを上書きします)、これはデータベースのセキュリティにも適しています。 zipソフトウェアでapkファイルを参照してデータベースを取得するだけです。もう1つの利点は、apkファイルのサイズが小さくなることです。より重要なのは、問題を解決することです

于 2012-12-27T03:51:58.490 に答える