Androidの重要な機能、インテント
インテントとは
前回から、Androidにおける、より実践的なアプリケーション開発について説明してきました。今回は、Androidの最も重要な機能の1つであるインテント(Intent)について解説します。インテントには「意図」「目的」という意味があります。主にアクティビティを起動する際のパラメータに使われます。
インテントには大別すると明示的インテントと暗黙的インテントの2種類があります。
明示的インテントがアクティビティを直接指定して起動させるのに対し、暗黙的インテントでは、明示的に起動させるアクティビティを指定せずにインテントのパラメータに起動するアクティビティをある程度推測できるだけの情報(インテントフィルター)を入れておくと、該当するアクティビティが起動するようになっています。
(該当するアクティビティが複数ある場合はユーザーが起動するアクティビティを選択するダイアログが表示されます。該当するアクティビティがない場合は起動に失敗します。)
特徴的なのは、起動元からは実際に起動するアクティビティが何なのかわからないというところです。この疎結合な仕組みがAndroidのおもしろいところです。
明示的インテント・暗黙的インテントの使用例
例)明示的インテント(自分のアプリ内のアクティビティを起動)
Intent intent = new Intent(this, xxx.xxx.xxx.class); //xxxにはパッケージのパスが入る
startActivity(intent);
例)暗黙的インテント(jpegを送信するアクティビティを起動)
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("image/jpeg");
intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("jpegファイルの場所"));
startActivity(intent);
より詳しい内容は公式サイトのインテントの解説(http://developer.android.com/reference/android/content/Intent.html)とインテントフィルターの解説(http://developer.android.com/guide/topics/intents/intents-filters.html)を参照してください。
上のスクリーンショットはG1に標準で入っているPicturesアプリから写真を1つ選んで(図1-1)、暗黙的インテントで起動するアプリを選択している様子(図1-2)です。
上記の場合の暗黙的インテントで起動されるアプリにはAndroidManifest.xmlに以下のような記述が必要です。
次に、Androidの最新情報や、Google I/Oについてお話しします。