2016-09-29 8 views
-3

アプリケーションにオフラインデータストレージ機能を実装したいと考えています。このシナリオは、ユーザーがApp Managerからデータを消去した場合でも、ユーザーがアプリケーションをアンインストールした場合でも、データが保存されるようなものになります。アプリケーションをアンインストールした後にデータベースにデータを保持する方法は?

私はデータベースとテーブルを作成する場所で次のコードを使用しています。この後


 
var db = window.openDatabase("../../../../storage/emulated/0/test.db", "1.0", "Test DB", 1000000); 
 
    
 
    
 
db.transaction(function(tx) { 
 
    tx.executeSql('CREATE TABLE IF NOT EXISTS DemoTable (name, score)'); 
 
    tx.executeSql('INSERT INTO DemoTable VALUES (?,?)', ['Alice', 101]); 
 
    tx.executeSql('INSERT INTO DemoTable VALUES (?,?)', ['Betty', 202]); 
 
    }, function(error) { 
 
    console.log('Transaction ERROR: ' + error.message); 
 
    }, function() { 
 
    console.log('Populated database OK'); 
 
    }); 
 

、データベースファイルは名前のモバイルデバイスの内部記憶装置に作成されます。アプリケーションをアンインストールした後> test.dbという

< /アプリケーションデータをクリア、データベース内のテーブルが削除されます。 誰かがアプリケーションをアンインストールした後でデータを永続化するのに手伝ってもらえますか?

+0

それは不可能であることは明らかではありませんか? (まあ、いくつかのクラウドストレージの他に) – Selvin

+0

クラウドストレージはここの唯一の方法です! –

+0

マインはオフラインシナリオなので、クラウドストレージは機能しません。ユーザーがアプリをアンインストールするとセキュリティ上の理由から、whatsappはデータベースをある場所に保持します。 –

答えて

1

アンインストール後も永続化したい場合は、DBファイルをEnvironment.getExternalStoragePublicDirectory()の場所に保存する必要があります。 あなたがそのディレクトリに置いたすべてのファイルは世界共通です。

可用性などの外部ディレクトリを使用する際に考慮する必要があるその他の点もあります。ここをクリックしてください:https://developer.android.com/training/basics/data-storage/files.html

0

SQLiteの代わりに、NoSQLデータベースのために、あなたのアプリケーションデータをファイルに保存することができます。アプリをアンインストールすることで、アプリのデータを使用すると、デバイス

の外部記憶装置にデータを格納するための自由を持っているだろうと、私は非常に

http://developer.couchbase.com/documentation/mobile/1.1.0/develop/training/build-first-android-app/index.html

その通過してください推薦する永続的になりますあなたがSQLiteを使用することができない場合、アンドロイドNoSQL DBのための良いライブラリ。

+1

内部ストレージを使用すると、アプリをアンインストールするとすべてのアプリデータが消去されます。 – user1506104

+0

私のデータベースが私のアプリケーションの中にあれば、それは消去されますが、別の場所にデータベースを保存したいので、アプリケーションをアンインストールした後でも、データは(Whatsappのように)持続しなければなりません。 –

+0

いいえ、この場合、あなたのデータベースはあなたのアプリの中にはありません。その場所を定義することができます。 Environment.getExternalStoragePublicDirectory() – Nishith

関連する問題