

現在、KotlinでAndroidアプリの開発を行っています。データベースはSQLiteを使用しているのですが、以前には悩む機会のなかった？問題にぶつかっています。

データベースに「value」というINTEGER型のカラムと、「total」というvalueの累積を格納するINTEGER型のカラムがあります。ロジックを組み立てて、例えばアプリケーションの中で1000という数字を2回登録すると、valueカラムのレコードには1000が2回登録され、totalカラムのレコードには1回目には1000、2回目には2000という数値が格納されるところまでは実装できました。

これでうまくいったかと思いきや、一旦アプリケーションを閉じ、再びアプリケーションを開いて1000という値を登録すると、次はtotalは3000となってほしいところが1000からスタート、つまりリセットされているのです。これを解消する方法がわかりません。

これまでもログインIDやパスワード、金額等をデータベースに登録、保持し、更新などをかけられるようなものは作れていました（当然、一旦登録や更新をしたデータはそのまま残り続けます）。しかし、今回はどこに原因があるのかわからず、1つ怪しいのはtotalカラムに登録するtotal変数をエンティティ（モデル？）には持たせず、データベースヘルパークラス内のコンパニオンオブジェクトで定義し、カラムにINSERTしている点かな？などと思いますが、アプリケーションを閉じない間はちゃんと累積値が格納されていくので、原因を絞り込むこともできず、ソースコードもどれを挙げていいのかわかりません。

文章のみで恐縮ですが、疑うべき点などお気づきのことがございましたら、どんなことでも構いませんのでアドバイスをよろしくお願いいたします。


CC BY-SA 4.0
2019-08-22T15:17:43.357
57550
2019-08-23T01:14:39.980
2019-08-23T01:14:39.980
3060
question
android sqlite
アプリを起動し直すとSQLiteに保存したデータがリセットされてしまう