我的Android应用程序的sqlite与后端服务器数据库同步。 我希望在由于某种原因(例如,卸载app)删除数据库时更新我的服务器,他应该从其表中删除行。 我正在寻找某种处理程序,但我找不到像onDatabaseDelete()这样的东西。
private static class DatabaseHelper extends SQLiteOpenHelper {
DatabaseHelper(Context context) {
super(context, DBAdapter.DATABASE_NAME, null, DBAdapter.DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
我想作为一种解决方法,我可以在卸载应用程序时执行此操作,但这不那么“优雅”。
有人可以告诉我是否有一种优雅的方式(从数据库处理程序而不是在卸载应用程序时)?
修改 可以在应用程序卸载上放置处理程序吗?是否可以在卸载应用程序之前运行一些操作?
答案 0 :(得分:0)
Android的数据库实际上是一个文件。
检测数据库删除最终检测文件删除。
虽然拥有onFileDelete()
答案 1 :(得分:0)
应用程序数据库文件位于/ data / app_package / databases。卸载应用程序时,将删除所有私有数据(/ data / app_package)。卸载应用程序或删除私有数据时,您无法收到通知。每次应用程序开始向服务器发送keepAlive消息以指示它仍然存在时,一个简单的解决方法。在服务器端,您将删除未收到keepAlive消息的记录,其中包含期间(取决于您的数据)的更多信息。你会遇到两个问题 -