06第4章:Androidのライフサイクル

Androidプログラムのどのサイクル

Androidプログラムのどのサイクルは、Androidシステムの起動から終了までのプロセスのすべての段階、つまり、起動から終了までのAndroidプログラムのプロセス全体を指します。Androidプログラムのライフサイクルは、プログラム自体ではなく、システムによって制御されます。

高から低への優先順位:フォアグラウンド、可視、サービス、バックグラウンド、空のプロセス

フォアグラウンドプロセス:

フォアグラウンドプロセスは、Androidシステムで最も重要なプロセスであり、ユーザーと対話するプロセスです。そのようなプロセスは最も重要です。一般に、システムにはそのようなプロセスはごくわずかです。システムメモリが非常に少ない場合を除いて、システムはフォアグラウンドプロセスを終了することを選択しません。

フォアグラウンドプロセスの条件を満たす:
プロセスは、フォアフロントでユーザーと対話するアクティビティを実行しています[アクティビティのonResume()メソッドが呼び出されます]。
プロセスには進行中のBroadcastReceiverがあります[BroadcastReceiver.onReceive()メソッドが実行されています]。
プロセスにサービスがあり、サービスのコールバック関数で実行されているコードがあります。

目に見えるプロセス

可視プロセスとは、プログラムインターフェイスの一部をユーザーが見ることができるが、フォアグラウンドでユーザーと対話できず、インターフェイス時間に応答しないプロセスを指します。通常の状況では、Androidシステムには少数の可視プロセスがあります。極端な場合にのみ、Androidシステムはプロセスを明確に認識して、フォアグラウンドプロセスのリソースを確保します。
一般に、次の条件のいずれかが表示可能なプロセスと見なされます。
フォアグラウンドにはないが、ユーザーには表示されているアクティビティがあります[アクティビティのonPause()メソッドが呼び出されます]。
表示されているアクティビティにバインドされたサービスがあります。

サービスプロセス:

サービスプロセスは、サービスを所有するプロセスです。これらのプロセスは通常、バックグラウンドでユーザーには見えませんが、長時間実行でき、ユーザーが気にする重要な機能を提供します。

舞台裏のプロセス

バックグラウンドプロセスは、ユーザーには表示されないアクティビティを実行しています[アクティビティのonStop()メソッドが呼び出されます]。これらのプロセスは、ユーザーエクスペリエンスに直接影響を与えません。

空のプロセス

空のプロセスとは、アクティブなコンポーネントを含まないプロセスです。プログラムは、このタイプのプロセスをいつでも閉じることができます。

Androidプログラムの基本コンポーネント

Androidアプリケーションは通常、1つ以上の基本コンポーネントで構成されています。これらは、呼び出すことができる基本的な機能モジュールです。Androidプログラムは、コンポーネントを使用して、プログラム内またはプログラム間でモジュール呼び出しを実装し、コードの再利用の問題を解決します。これは、Androidプログラムの非常に重要な機能です。
Androidには、アクティビティ、BroadcastReceiver、Conent Provider、Serviceの4つの基本コンポーネントがあります。

アクティビティ

これは、ユーザー操作用に表示される視覚的なユーザーインターフェイスです。Androidアプリケーションは、1つまたは複数のアクティビティのみを持つことができます。
[アクティビティ]ウィンドウに表示されるコンテンツは一連のビューで構成されており、それらはすべてView基本クラスから継承されます。各ビューは、ウィンドウ内の特定の長方形のスペースを制御します。親ビューには、子ビューのレイアウトが含まれて整理されますが、下部のビューは、制御する長方形を描画してユーザーの操作に応答するため、ビューは次のようになります。アクティビティとユーザーの間のインターフェース。たとえば、開発者はビューを介して画像を表示し、ユーザーがそれをクリックしたときに対応するアクションを生成できます。

サービス

サービスとはサービスを意味します。視覚的なユーザーインターフェイスはありませんが、一定期間バックグラウンドで実行されるプログラムです。

BroadcastReceiver

これは、ブロードキャスト通知情報の受信と対応する処理の実行に重点を置いたコンポーネントです。すべてのブロードキャストレシーバーは、BroadcastReceiver基本クラスを継承します。
ブロードキャストレシーバーにはユーザーインターフェイスがありませんが、アクティビティを開始して受信した情報に応答したり、NotficationManagerを使用してユーザーに通知したりできます。

ContentProvider

ContentProviderは、アプリケーション間でデータを共有するためのインターフェイスメカニズムであり、より高度なデータ共有方法です。共有する必要のあるデータを指定できますが、他のアプリケーションは、データのソースとパスを知らなくても同じことを実行できます。操作のためにデータを共有します。
Androidプログラムでは、共有データの実装は、他のアプリケーションがデータを使用および保存するための一連の標準メソッドを実装するコンテンツプロバイダー基本クラスから継承する必要があります。ただし、アプリケーションはこれらのメソッドを直接呼び出すのではなく、ContentResolverオブジェクトを使用し、そのメソッドを代替として使用します。ContentResolverオブジェクトは、query()、insert()、update()、およびdelete()メソッドを提供します。共有データに対してさまざまな操作を実行できます。

活動のライフサイクル

一時停止停止キルを
実行している4つの状態


ここに写真の説明を挿入
ここに写真の説明を挿入

アクティビティはアクティブ状態から一時停止状態または停止状態に変換でき、一時停止状態は停止状態に変換できます。アクティブ状態、一時停止状態、および停止状態はすべてKilled状態に変換でき、Killed状態もアクティブ状態に変換できます。

onCreate()メソッド:アクティビティが作成されたときにコールバックされます。

ここに写真の説明を挿入
ここに写真の説明を挿入

Logクラスの一般的なメソッドと説明

v():VERBOSE冗長ログ情報を出力し、黒のテキストを使用して
d()を示します:DEBUG障害ログ情報を出力し、青のテキストを使用して
i()を示します:INFO通知情報を出力し、緑のテキストを使用して
w()を示します警告を出力します警告ログ情報、オレンジ色のテキストを使用して
e()を示します:エラーエラーログ情報を出力し、赤いテキストを使用して示します

各ログ出力メソッドには、文字列タイプのタグとメッセージパラメータの2つの必須パラメータがあります。
タグはログ情報のタグを指定するために使用され、通常は現在のクラス名またはアクティビティの名前として指定されます。メッセージが使用されます。出力される文字列ログ情報を表します。java文字列連結演算子を使用して、必要な情報を連結できます。これらの2つのパラメーターに加えて、アプリケーションが例外をスローしたときに、例外情報のThrowableインスタンスパラメーターを追加することもできます。

Eclipseデバッガーのデバッグ

Eclipse Javaデバッガーを使用するには、プログラムエンドポイントを設定してから、シングルステップデバッグを使用してプログラムコードの各行を個別に実行する必要があります。

ブレークポイントブレークポイントの
設定は、プログラムのデバッグに不可欠な効果的な方法です。Javaデバッガーは、プログラムエンドポイントに遭遇するたびに現在のスレッドを一時停止します。つまり、プログラムの実行スケジュールを一時停止します。

おすすめ

転載: blog.csdn.net/weixin_44522477/article/details/111861032
おすすめ