Clearing Application database

2019-03-01 15:29发布

I have an Android application which uses sqlite database to store textual data for a particular user. The data is read/written from/to the database from a service that runs periodically after every n seconds. My requirement is to clear data depending on age. Like, if the file is more than 24 hours old it should be deleted.

Checking the age of the file seems easy, just compare current time with the File creation time. The problem is:

  1. where should I put this check and delete the file; inside application onCreate() or when the user logs in/ logs out? What would be an ideal place to trigger this logic from? Should I schedule an Alarm when the user logs in?

  2. Should I delete the file or simply delete the rows? If I don't trigger the Cache clearance logic from login/logout, won't deleting the file cause problems, especially if the service is still trying to read and write from the database?

Please advice.

Thanks.

1条回答
爷的心禁止访问
2楼-- · 2019-03-01 15:54

Well, this all depends on your logic for the application for the second part. I cant see why you would delete a database unless its just used to store temp data that does not matter. Either way the ideal place to do this check and delete is in the Data Access class thats opening the connection to the database. Below would be my logic...

  1. Call to open DB
  2. Check if DB file is old
  3. If yes, delete it
  4. Open Database (should create one if it does not exist)
查看更多
登录 后发表回答