1

さまざまなリソースに一元化されたデータアクセスを実装する正しい方法を理解するのに苦労しています。

単一のクラスが必要です。メソッドを呼び出すときに適切なものに応じて、とのDataAccess.class両方から呼び出すクラスを呼び出します。SQLiteDatabaseHelper.classServerAccess.class

DataAccess.classにASyncTaskを使用できるように、サービスから拡張することが最善のアプローチだと思いましたServerAccess.class。今、私は疑問を持っています。アプリケーション内のDataAccess.classほとんどのアクティビティからアクセスできる必要があり、アプリケーションがアクセスしたときに停止する必要があります。

グーグルの開発者リソースによると、サービスはバックグラウンドで進行中の操作によく使用されているようですが、私が取り入れようとしている範囲を考えると、ライフサイクルをどのように処理するかわかりません。メソッドを使用するときに、サービス呼び出しstartService()stopService()内部的に行うことはできますか?DataAccess.classサービスにアクセスするたびに呼び出すのは理にかなっていますか、それともアプリケーションの開始時と停止時に1回だけ呼び出す必要がありますか?

助けてくれてありがとう、

4

1 に答える 1

1

私がお勧めします

1)サービス-アクティビティ通信が制限されているため、すべてのAsyncTaskベースのソリューションを使用します。(もちろん、バックグラウンドで何かを実行する必要がない限り)しかし、これに対する反論を聞きたいのですが、なぜ代わりにサービスを使用するのですか。

2)DataAccessのように1つのファサードだけを使用するのではなく、アプリの機能に固有のものにします(つまり、Androidのシステムサービスのようなものにします)。

3)必要なDataAcccessオブジェクトを取得するには、Androidと同じようにファクトリを使用する必要があります。これは、DataAccessオブジェクトを取得する場所の2番目の部分に対応しています。取得およびAndroidシステムサービスと同じモデルに従います。

4)指示されている場合はコンテンツプロバイダーを使用し、Androidドキュメントに示されているように管理します。

更新:これらは、優れたソリューションの公理のようなものだと思います。全部ではありません。これを詳細に検討しながら更新します。

于 2012-07-25T04:53:31.227 に答える