プロセスを開始します。デフォルトでは、同じアプリのすべてのコンポーネントは同じプロセスとスレッド(「メイン」スレッドと呼ばれます)で実行されます。コンポーネントが開始されたときに、既にそのアプリのプロセスが存在する場合(そのアプリの他のコンポーネントが存在するため)、コンポーネントはそのプロセス内で開始され、同じ実行用のスレッドを使用します。アプリ内の別のコンポーネントを別のプロセスで実行するよう調整でき、あらゆるプロセスに対して追加のスレッドを作成できます。アプリでプロセスとスレッドがどのように動作するかについて説明します。プロセスデフォルトでは、同じアプリのすべてのコンポーネントは同じプロセスで実行され、ほとんどのアプリでこの動作を変更する必要はありません。ファイルでそれを行うことができます。属性をサポートしています。この属性を設定して、各コンポーネントが独自のプロセスで実行されるようにしたり、一部のコンポーネントで同じプロセスを共有し、残りのコンポーネントでは別のプロセスを使用するようにしたりできます。設定すると、異なるアプリのコンポーネントを同じプロセスで実行することもできます。共有していて、同じ証明書で署名されている必要があります。属性をサポートしており、すべてのコンポーネントに適用されるデフォルトの値を設定します。プロセスをある時点でシャットダウンするよう決定する場合があります。コンポーネントは、結果的に破棄されます。プロセスは、それらのコンポーネントの処理が再度発生したときに再開されます。システムはユーザーへの相対的な重要度を測ります。画面に見えているアクティビティをホストするプロセスよりも、もう画面に見えていないアクティビティをホストするプロセスの方が先にシャットダウンされることになります。そのため、プロセスを終了するかどうかは、そのプロセスで実行されているコンポーネントの状態によって決まります。プロセスのライフサイクルや、そのライフサイクルとアプリの状態との関係について詳しくは、プロセスとアプリのライフサイクルをご覧ください。スレッドアプリの起動時に、システムはアプリ実行用のスレッドを作成します。これは、「メインスレッド」と呼ばれます。ウィジェットに送信する役割を担うため非常に重要です。パッケージのコンポーネント)とやり取りをするスレッドでもあります。スレッドと呼ばれることもあります。スレッドでないこともあります。アノテーションをご覧ください。コンポーネントのインスタンスごとに別のスレッドが作成されることはありません。スレッドでインスタンス化され、各コンポーネントへのシステム呼び出しがそのスレッドから送信されます。スレッドで実行されることになります。スレッドがタップイベントをウィジェットに送信し、ウィジェットがそのタップされた状態を設定してイベントキューに無効化のリクエストを送信します。スレッドがリクエストをキューから取り出し、ウィジェットに自身を再描画するよう通知します。モデルではパフォーマンスの低下につながる可能性があります。全体がブロックされてしまいます。スレッドがブロックされると、描画イベントを含むすべてのイベントを送信できなくなります。ユーザー側には、アプリがハングしたように見えます。秒)ブロックされると、ユーザーに「アプリが応答していません」(ANR)というダイアログが表示されます。ユーザーはアプリを停止するか、気に入らない場合はアンインストールしてしまう可能性があります。ツールキットはスレッドセーフではありません。操作するべきではありません。スレッドから行う必要があります。つの明快なルールがあります。スレッドをブロックしないことが不可欠です。即座に実行する必要のない操作の場合は、別のスレッド(「バックグラウンド」スレッドや「ワーカー」スレッド)で実行するようにする必要があります。更新することはできません。スレッドにアクセスする方法がいくつか用意されています。使用できるメソッドは次のとおりです。}).start();}この実装はスレッドセーフです。スレッドから操作されます。操作が複雑になるにつれて、この種類のコードも複雑化してメンテナンスが難しくなります。スレッドから配信されたメッセージを処理できます。スレッドのタスクの実行を簡素化できます。インターフェースに非同期の処理を実行できます。スレッドに発行します。スレッドやハンドラを自身で処理する必要はありません。メソッドを実装する必要があります。