Browsing articles tagged with " Intent"

IntentServiceを使って非同期処理を行う

10月 26, 2010   //   by @mhidaka   //   アプリケーション  //  2 Comments

IntentServiceはアプリケーションのバックグラウンドで処理を行うための方法です。名前の通り、Serviceを拡張していますので、基本的な扱い方はServiceと同じです。

IntentServiceの特徴

バックグラウンドで処理を行うということは、アプリケーションの動作と関係なく(非同期で)仕事することになります。一般的には以下の処理シーケンスが必要です。

  • 別スレッドを作成
  • 仕事のキューイング
  • 順次とりだして実行する

開発者が毎回作成するには煩雑です。IntentServiceを使えば、これらの処理手順を簡略化、簡単に実行することができます(同一プロセス内で別スレッドを作成するため、厳密にServiceと同じではないようです)。

IntentServiceとAsyncTaskの違い

以前紹介したAsynctaskを使って非同期処理を行う もAndroidアプリケーションのUIスレッドと内部処理を分離する手法の一つです。

動作は似ていますが、IntentServiceはアプリケーションの動作状況に依存しないで、自分の仕事がなくなるまでバックグラウンドで処理を行える利点があります。アプリケーションがフォアグラウンド(前面)に位置していなくても、処理が中断されることがありません。IntentServiceはAsyncTaskと異なり再利用(複数呼び出し)も可能です。

逆に処理中のプログレスバー表示など進捗表示など逐次結果を反映させる処理はAsyncTaskのほうが簡単です。IntentServiceとAsyncTaskは非同期処理の特性に応じて使い分けるべきでしょう。

続きはサンプルコードと注意点です。

Read more >>

Intent.ACTION_SENDで他のアプリケーションと連携する

10月 7, 2010   //   by kkato   //   アプリケーション  //  4 Comments

Androidにはアプリ間の連携をするために便利なIntentという仕組みが用意されています。

TechBoosterでも明示的Intet暗黙的Intentを以前に取り上げました。

前回の暗黙的Intentの記事ではACTION_VIEWというIntentを取り上げましたが、今回はACTION_SENDを取り上げます。

ACTION_SENDは標準のアプリいくつか対応しており、AndroidMarketに公開されているアプリでも比較的多くのアプリが対応しています。

多くのアプリで対応しているIntentに自作のアプリも対応することで、Intentと送る立場からすれば自分のアプリで実装すること無く、世の中にある多くのアプリの機能を自分のアプリから使うことが可能になります

またそのような多くのアプリで対応しているIntentを受けることができるようにしておくと、優秀なアプリと一緒に使ってくれるようになるかもしれません。

ACTION_SEND はテキストや画像などいくつかの形式に対応していますが今回はテキストのやり取りを紹介します。

それではIntent.ACTION_SENDを使った他のアプリとのテキストの受け渡しをサンプルソースとともに紹介します。

Read more >>

システムの起動時にサービスを実行する

9月 1, 2010   //   by kkato   //   アプリケーション  //  1 Comment

今回はシステムの起動時にサービスを実行する方法を説明します。

正確にはサービスを実行するということに限ったことではなく、システムの起動時に何かしらの処理を行うということです。
しかし「常駐アプリを作りたい」など、起動時に特定のServiceを実行したいという場面が出てくると思うのでこのようなタイトルにしました。

それでは続きで説明していきます。

Read more >>

タブメニューを利用する

8月 31, 2010   //   by @mhidaka   //   ユーザインターフェース  //  1 Comment

Androidでタブを使う方法について紹介します。
タブ(Tab)を簡単に使う仕組みとして専用のActivity「TabActivity」が用意されています。

※2010/11/14 yanzmさんよりご指摘いただき、内容を修正しました。ありがとうございました!

TabActivityで、タブの内容として表示できるのはView、Activity(IntentによるTabActivity内起動)、
動的にコンテンツを生成できるTabHost.TabContentFactoryです。

レイアウト構成の制限

TabActivityではレイアウトファイルについて、名前上の制限があります。

  • TabWidgetのidが android:id=”@android:id/tabs” であること
  • FrameLayoutのidが android:id=”@android:id/tabcontent”であること

上記の2つは、タブを使う上で固定のidとなっています。

続きはサンプルの res/layout/main.xml です。アウトラインは以下のような構成です。
Read more >>

Intentを使ってアプリを連携させる(暗黙的Intent)

7月 20, 2010   //   by @mhidaka   //   アプリケーション  //  1 Comment

Intentを使って画面を遷移する(明示的Intent)では同一アプリケーション内での画面遷移をIntentで行いました。
今回は暗黙的Intentを使って、他アプリケーションを呼び出してみます。

暗黙的Intentは、所定の動作(たとえばブラウザを起動)のみ指定してアプリケーションを起動します。
起動される側のアプリケーションは、反応したいイベント(ブラウザでURLを表示する、というAction)に対して返事をします。

明示的Intentで単純に標準の「ブラウザ」アプリケーションを指定しても、Webを見るという動作は実現できます。
標準アプリケーションを使っていれば一見問題無いように思えますが、利用者は好きなアプリケーションを選べなくなってしまいます。
(またブラウザが入っていないシステムでは、残念ながら動かないでしょう。)

暗黙的IntentはAction(動作)を指定して起動対象を決めることで、アプリケーションが緩やかに連携します。
一見回りくどいように見えますが、明示的に指定するより、アプリケーション間の連携が格段に行いやすくなっています。

それでは、サンプルコードで確認してみましょう。
Read more >>

AppWidgetの作成(2) + PendingIntent

6月 24, 2010   //   by kkato   //   アプリケーション  //  1 Comment

AppWidgetの作成(1)で作成したWidget(ウィジェット)は、ただ表示されるだけでしたが、今回はソースを修正してボタンを押したら表示されている文言が変わるというWidgetにしてみましょう。

Widgetの場合は、Buttonのイベント(onClickListener、クリック処理)を受けるで説明している方法ではなく、PendingIntent(ペンディングインテント)の仕組みを利用します。

それでは説明&サンプルソースを。

Read more >>

Intentを使って画面を遷移する(明示的Intent)

6月 22, 2010   //   by @mhidaka   //   アプリケーション  //  3 Comments

Intentはアプリケーション間の連携機能で異なるアプリケーションを繋ぐランタイム(機能・モジュール)です。付加情報(配列や、文字列、整数型など)を別アプリケーションに通知でき、他のActivityの呼び出し方法としてよく使われます。Activityをクラス名で指定して呼び出す方法を明示的Intent、動作(振る舞い)で呼び出し、Activityは指定しない方法を暗黙的Intentと呼びます。

暗黙的Intentは、所定の動作(たとえばメールを書く)のみ指定します。どんなActivityでも指定された動作が出来るなら、呼び出し対象となります。Android端末内には、Gmail や Word 、Notepadなどいろいろなアプリケーションがインストールできます。開発者でどのアプリを起動すればいいか、決めうちにするのは難しいですが、暗黙的Intentを使えば、利用者が好きなアプリケーションを選べます。

Intentは同一アプリケーション内でも利用可能です。
明示的に使う場合は主に画面遷移で使い、startActivityメソッドの引数として追加します。
今回は同一アプリケーション内での利用(明示的Intent)について解説します。

Intentを使ってStringを送信・受信するサンプルを用意しました。
Read more >>

ページ:«12

技術書新刊 発売中

アンドロイドアカデミアには、CIやテスト、互換検証など実務に生きるノウハウをあつめています

技術書新刊 発売中

Android Next!はAndroid 7.0に対応したはじめての技術書です!


The Web Explorer 2はCSSの中央寄せやWebAudioなど未来を読み解く一冊です


Revised TypeScript in DefinitelylandはTypeScript 2.0(β)に対応した解説書です。インストールから型定義まで幅広くサポートしています


技術書をかこう!はエンジニアらしい執筆環境を構築、HowTo本です