2011年07月31日

javadoc翻訳 〜Activity編〜(6)last

Process Lifecycle

The Android system attempts to keep application process around for as long as possible, but eventually
will need to remove old processes when memory runs low. As described in Activity Lifecycle, the decision
about which process to remove is intimately tied to the state of the user's interaction with it. In general,
there are four states a process can be in based on the activities running in it, listed here in order of
importance. The system will kill less important processes (the last ones) before it resorts to killing more
important processes (the first ones).
プロセス・ライフサイクル

Androidシステムはアプリケーションプロセスを可能な限り長く保とうとするが、いずれはメモリ不足により古いプロセスを
破棄する必要がでてくる。Activityのライフサイクルのトピックにおいて記述した通り、プロセス破棄の決定は、その
プロセスがユーザに対するどのようにインタラクトしている状態であるかに深く関わっている。通常、プロセスは自身の中で
動作しているActivityに基づいて、4つの状態を取りうる。以下はそのリストである。システムは、重要なプロセスをKILLしてしまう
前に、より重要度の低いプロセスをKILLしようとするだろう。

1)
The foreground activity (the activity at the top of the screen that the user is currently interacting with)
is considered the most important. Its process will only be killed as a last resort, if it uses more memory than
is available on the device. Generally at this point the device has reached a memory paging state, so this is
required in order to keep the user interface responsive.

2)
A visible activity (an activity that is visible to the user but not in the foreground, such as one sitting
behind a foreground dialog) is considered extremely important and will not be killed unless that is required
to keep the foreground activity running.

3) A background activity (an activity that is not visible to the user and has been paused) is no longer critical,
so the system may safely kill its process to reclaim memory for other foreground or visible processes. If its
process needs to be killed, when the user navigates back to the activity (making it visible on the screen again),
its onCreate(Bundle) method will be called with the savedInstanceState it had previously supplied in
onSaveInstanceState(Bundle) so that it can restart itself in the same state as the user last left it.

4)
An empty process is one hosting no activities or other application components (such as Service or BroadcastReceiver
classes). These are killed very quickly by the system as memory becomes low. For this reason, any background
operation you do outside of an activity must be executed in the context of an activity BroadcastReceiver or
Service to ensure that the system knows it needs to keep your process around.

1)
最前面のActivity(ユーザが現在インタラクトしている最上位のActivity)は最重要だとみなされる。このActivityを
有するプロセスがKILLされるのは、このプロセスがデバイスの許容範囲外のメモリを使用した場合のみである。一般的に、
このような場合、端末はメモリ・ページング状態にあり、従ってこの対処はユーザインタフェイスを応答不能にしないために
実行されるものである。

2)
視認可能なActivity(最前面ではないが、ユーザから視認可能なActivity。例えば、ダイアログの後ろにあるActivityなど)
もまた極めて重要だとみなされる。このプロセスは最前面のプロセスを保持する目的以外でKILLされることはない。

3)
バックグラウンドのActivity(ユーザから視認できず、ポーズされたActivity)はすでに最重要とはいえない。従って、システムは
ほかの最前面にあるプロセスや視認可能なプロセスのメモリを確保するために安全にKILLすることができる。もしこのプロセスを
KILLする必要があるならば、ユーザがバックボタンでそのActivityに戻ったとき(つまり、再び視認可能になったとき)、
以前にonSaveInstanceState(Bundle)で保存されたsavedInstanceStateと共に、そのActivityのonCreate(Bundle)メソッドが
コールされるだろう。これにより、そのActivityは最後にユーザが残していったままの状態で再構築できるのである。

4)
空プロセスはActivityもほかのアプリケーションコンポーネント(ServiceとかBroadcastReceiverとか)もホスティングして
いないプロセスである。これらはシステムがメモリ不足になると直ちにKILLされる。したがって、Activity外でいかなる
バックグラウンド処理を行うにしても、それはActivityのBroadcastReceiverなりServiceなりのContextないで実行しなければ
ならない。そうしないと、システムがそのプロセスを保持するべきだと認識できないからである。

javadoc翻訳 〜Activity編〜(1)
javadoc翻訳 〜Activity編〜(2)
javadoc翻訳 〜Activity編〜(3)
javadoc翻訳 〜Activity編〜(4)
javadoc翻訳 〜Activity編〜(5)
posted by sandman at 00:14| Comment(0) | Android | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。