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アプリ開発」カテゴリの記事
- Androidアプリ開発メモ068:Tweenアニメーション(2012.11.18)
- Android SDK tools, Revision 21 に更新(2012.11.18)
- Androidアプリ開発メモ067:NDKのサンプルを動かしてみた(2012.09.10)
- Androidアプリ開発メモ066:Android SDK tools Rev.20 で変わった事(2012.07.12)
- Androidアプリ開発メモ065:ライブフォルダ(2012.07.11)
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 »
Comments