Androidでのマルチタスク

Androidでのマルチタスク

Androidでのマルチタスクは、パソコンとは異なる
どちらかと言うと、Webブラウザのタブ

1つのタスクは、
バックスタックというスタックを持ち
その中へ今まで
タブで表示したActivityがスタックされる

このタスクを必要に応じて切り替えることでAndroidはマルチタスクを実現している

また、Activityは起動するごとに
現在アクティブなタスクのバックスタックへスタックされていく
このとき、Activityがどのアプリなのかは重要ではなく
他のアプリのActivityでも、Activityの呼び出し方によっては同じバックスタックへスタックしていく

こうしてスタックされたActivityは、
端末のバックボタンを押すことで
取り出すことができる

そのときに表示されていたActivityは破棄される

次に、タスクの切り替え

タスクの切り替えは、Homeボタンや
マルチタスクボタンを押したとき
ホーム画面からアプリアイコンをタップしたときに行われる

このとき表示していたActivityが属するタスクは休眠状態になり
新たに表示されるActivityの属するタスクが活動状態になる

このように、ユーザーの操作で必要になったときにタスクが切り替えられる

そして、休眠状態のタスクは
時間が経過すると
保持する必要がないとOSが判断して
終了させられる

タスクは、Activityが属するアプリに関係なく動作する

このため、1つのアプリに属するActivityが複数のタスクに存在することもある

このとき、タスクを越えて
1つのアプリでデータや処理を共有したり
タスクにとらわれない処理を実現する手段として、Serviceがある

Serviceは、タスクに属さずアプリに属する形になり
異なるタスク間に属するActivityのデータや処理の共有ができる

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です