My Photo

« Androidアプリ開発メモ016:ジェスチャー | Main | WindowsXPの再インストール時のメモ その2 »

September 07, 2011

Androidアプリ開発メモ017:タスク

他のアプリを起動する場合のIntentの設定
アクション:Intent.Action
パッケージ名:起動するアクティビティのパッケージ名
クラス名:起動するアクティビティの完全修飾名(fully qualified name)
カテゴリ:Intent.CATEGORY_LAUNCHER
フラグ:Intent.FLAG_ACTIVITY_NEW_TASK

実装の例。

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setComponent(new ComponentName(packageName, fullQualifiedClassName));
intent.removeCategory(Intent.CATEGORY_DEFAULT);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
activity.startActivity(intent);
この例では別なタスクとして起動される。
クラスリファレンスのACTION_MAINのところには"Start as a main entry point, does not expect to receive data."とあるので、起動したアプリが終了したときに起動元に値を返してもらうことはできない?
起動元→起動先へはIntentにデータをセットして渡せる。

タスクとは

タスクはアプリケーションのアクティビティの集まりで、アクティビティはスタックで保持される。スタックの一番上にあるアクティビティが画面上に表示されているアクティビティである。
あるアクティビティAから同じアプリケーションに属する別のアクティビティBを開始すると、スタックにあるこれまで表示されていたアクティビティAの状態は保存され、新しく開始されたアクティビティBがスタックにpushされる。
バックキーでアクティビティAに戻るとアクティビティBはスタックからpopされて破棄され、アクティビティAが前の状態で画面に表示される。

フォアグラウンドにあるタスクは新しいタスクを開始するかホームキーを押すとバックグラウンドタスクになる。画面はホーム画面に戻る。
ホームキーを長押しした時の動きは、
「最近使ったアプリの一覧が表示され、アプリを開始できる」
という説明されている場合があるが、実際には
「タスクの一覧が表示され、タスクを再開(フォアグラウンドタスクに)できる」
というのがより正しい説明?

参考ページ:
1.3 タスクとバックスタック - ソフトウェア技術ドキュメントを勝手に翻訳
Y.A.M の 雑記帳: Android Activity, Task, Stack, Launch mode

« Androidアプリ開発メモ016:ジェスチャー | Main | WindowsXPの再インストール時のメモ その2 »

Androidアプリ開発」カテゴリの記事

Comments

Post a comment

(Not displayed with comment.)

TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/26461/52672005

Listed below are links to weblogs that reference Androidアプリ開発メモ017:タスク:

« Androidアプリ開発メモ016:ジェスチャー | Main | WindowsXPの再インストール時のメモ その2 »

August 2017
Sun Mon Tue Wed Thu Fri Sat
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
無料ブログはココログ

日本blog村

  • にほんブログ村 IT技術ブログへ
  • にほんブログ村 アニメブログへ
  • にほんブログ村 サッカーブログ アルビレックス新潟へ

好きな音楽家

メモ

XI-Prof