コンテントプロバイダ(content provider)

コンポーネント

コンテントプロバイダとは?

 状態:-  閲覧数:2,057  投稿日:2013-04-08  更新日:2013-04-11  
・「複数アプリケーション間で一元管理しているデータ」を保存/取得できる機能(もしくはデータを一元管理する機能)を持つコンポーネント
・簡単に言えば、初めからAndroidに備わっている「アプリ間でデータの授受を行う仕組み」


特徴


「複数アプリケーション間でデータを共有するための仕組み」を持つ

※通常、アプリケーションが管理しているリソース(画像やデータ)は、他のアプリケーションから利用不可


・Androidアプリケーションは、保存する必要のある情報をファイルやSQLiteと呼ばれる軽量データベースに記録しておくことで、アプリケーションを終了しても再度起動された時にその情報を取り出すことができる
・しかし、これらの情報はアプリケーションごとに記録されているため、他のアプリケーションが記録した情報を取り出したり、変更したりすることができない


・そこで「コンテンツプロバイダ」を実装することにより、 アプリケーションの管理しているリソースを、他のアプリケーションから利用することが可能になる

※データは、ファイル システムや SQLite データベースなど、一般に利用できる方法で格納されていれば利用可



・アプリケーション間の連携、効率の観点から、共通データタイプ(住所録、画像情報など)を定義している

想定される利用用途

 閲覧数:398 投稿日:2013-04-11 更新日:2013-04-11 

データ例


・通話ログ(着信履歴・発信履歴)、電話帳、ブラウザのブックマーク等、標準で実装されているAndroidアプリが持つデータ
・住所録(データを一元的に管理して、いろいろなアプリケーションから利用できると便利)
・画像、各種ファイルなど


スケジュール管理アプリ


・スケジュール管理アプリが複数入っている場合、通常なら相互にスケジュールをExport/Importして同期をとる必要があるが、ContentProviderを介してスケジュールを保存・変更すれば、どんなスケジュール管理アプリを利用しても、常に同期状態を保つことが可能になる
※データ管理をアプリケーション毎に行うと、「データ交換」や「相互フォーマット変換」がとても煩雑になる場合がある

実装

 閲覧数:377 投稿日:2013-04-11 更新日:2013-04-11 
・コンテントプロバイダは、ContentProviderという抽象クラスを実装して生成


ブロードキャストレシバ(broadcast receiver)

コメント投稿(ログインが必要)