ORMLite パッケージを使用して Android アプリケーションを作成しようとしています。私にはいくつかのアクティビティとサービスがあり、https://github.com/tomquist/Android-Error-Reporterも使用して、クライアントの pdas からエラーを受け取ることができます。ORMLite では、すべてのアクティビティとサービスが OrmLiteBaseActivity などを拡張するか、各アクティビティに適切なコードを追加して、データベース ヘルパーを取得し、アクティビティの終了後にそれを解放できるようにする必要があります。したがって、このコードをすべてのアクティビティまたはサービスに追加するのはあまり便利ではありません。データベースを使用できるヘルパークラスもいくつかあります
また、いくつかのグローバル情報とメソッドを保持するアプリケーション クラスもあります。そこで、アプリケーション クラスで ormlite ヘルパーを開き、次のようにすべてのアクティビティ/クラスで使用することにしました。
public class MyApplication extends Application {
private volatile DatabaseHelper databaseHelper = null;
@Override
public void onCreate() {
super.onCreate();
}
@Override
public void onTerminate() {
if (databaseHelper != null) {
OpenHelperManager.releaseHelper();
databaseHelper = null;
}
super.onTerminate();
}
public DatabaseHelper getHelper() {
if (databaseHelper == null) {
databaseHelper = OpenHelperManager.getHelper(this, DatabaseHelper.class);
}
return databaseHelper;
}
}
この方法で他のクラスで使用します。
((MyApplication) getApplicationContext()).getHelper();
このように使用するのは良い考えだと思いますか、それともメモリリークやその他の問題が発生する可能性がありますか? 私の懸念は、onTerminate が実際のデバイスで機能しないことです...私は「新しいものを試してみる」段階にあるので、間違ったアプローチで将来発生する可能性のある問題を排除するために、これについてのコメントを聞きたいと思います。コードを書き直すこと。