Android-アクティビティ
アクティビティは、Javaのウィンドウやフレームと同じようにユーザーインターフェイスを備えた単一の画面を表します。Androidアクティビティは、ContextThemeWrapperクラスのサブクラスです。
C、C ++、またはJavaプログラミング言語を使用したことがある場合は、プログラムが main()関数。非常によく似た方法で、Androidシステムはでプログラムを開始しますActivityonCreate()コールバックメソッドの呼び出しから始めます。以下のアクティビティライフサイクル図に示すように、アクティビティを開始する一連のコールバックメソッドと、アクティビティを破棄する一連のコールバックメソッドがあります:(画像提供:android.com)
Activityクラスは、次のコールバック、つまりイベントを定義します。すべてのコールバックメソッドを実装する必要はありません。ただし、それぞれを理解し、アプリがユーザーの期待どおりに動作するように実装することが重要です。
シニア番号 | コールバックと説明 |
---|---|
1 | onCreate() これは最初のコールバックであり、アクティビティが最初に作成されたときに呼び出されます。 |
2 | onStart() このコールバックは、アクティビティがユーザーに表示されるようになると呼び出されます。 |
3 | onResume() これは、ユーザーがアプリケーションとの対話を開始したときに呼び出されます。 |
4 | onPause() 一時停止されたアクティビティはユーザー入力を受け取らず、コードを実行できず、現在のアクティビティが一時停止され、前のアクティビティが再開されているときに呼び出されます。 |
5 | onStop() このコールバックは、アクティビティが表示されなくなったときに呼び出されます。 |
6 | onDestroy() このコールバックは、アクティビティがシステムによって破棄される前に呼び出されます。 |
7 | onRestart() このコールバックは、アクティビティを停止した後にアクティビティが再開したときに呼び出されます。 |
例
この例では、Androidアプリケーションのアクティビティライフサイクルを示す簡単な手順を説明します。次の手順に従って、HelloWorldの例の章で作成したAndroidアプリケーションを変更します-
ステップ | 説明 |
---|---|
1 | Android Studioを使用してAndroidアプリケーションを作成し、Hello Worldの例の章で説明されているように、パッケージcom.example.helloworldの下でHelloWorldという名前を付けます。 |
2 | 以下に説明するように、メインアクティビティファイルMainActivity.javaを変更します。残りのファイルは変更しないでください。 |
3 | アプリケーションを実行してAndroidエミュレーターを起動し、アプリケーションで行われた変更の結果を確認します。 |
変更されたメインアクティビティファイルの内容は次のとおりです src/com.example.helloworld/MainActivity.java。このファイルには、基本的なライフサイクルメソッドのそれぞれが含まれています。ザ・Log.d() メソッドはログメッセージの生成に使用されています-
package com.example.helloworld;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
public class MainActivity extends Activity {
String msg = "Android : ";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(msg, "The onCreate() event");
}
/** Called when the activity is about to become visible. */
@Override
protected void onStart() {
super.onStart();
Log.d(msg, "The onStart() event");
}
/** Called when the activity has become visible. */
@Override
protected void onResume() {
super.onResume();
Log.d(msg, "The onResume() event");
}
/** Called when another activity is taking focus. */
@Override
protected void onPause() {
super.onPause();
Log.d(msg, "The onPause() event");
}
/** Called when the activity is no longer visible. */
@Override
protected void onStop() {
super.onStop();
Log.d(msg, "The onStop() event");
}
/** Called just before the activity is destroyed. */
@Override
public void onDestroy() {
super.onDestroy();
Log.d(msg, "The onDestroy() event");
}
}
アクティビティクラスは、プロジェクトのres / layoutフォルダーにあるXMLファイルを使用してすべてのUIコンポーネントをロードします。次のステートメントは、res / layout /activity_main.xmlファイルからUIコンポーネントをロードします。
setContentView(R.layout.activity_main);
アプリケーションは、制限なしで1つ以上のアクティビティを持つことができます。アプリケーションに対して定義するすべてのアクティビティは、AndroidManifest.xmlファイルで宣言する必要があり、アプリのメインアクティビティは、次のようにMAINアクションとLAUNCHERカテゴリを含む<intent-filter>を使用してマニフェストで宣言する必要があります。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.tutorialspoint7.myapplication">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
いずれかのアクティビティでMAINアクションまたはLAUNCHERカテゴリのいずれかが宣言されていない場合、アプリアイコンはホーム画面のアプリのリストに表示されません。
変更したものを実行してみましょう Hello World!変更したばかりのアプリケーション。私はあなたがあなたを作成したと思いますAVD環境設定をしながら。Android Studioからアプリを実行するには、プロジェクトのアクティビティファイルの1つを開き
08-23 10:32:07.682 4480-4480/com.example.helloworld D/Android :: The onCreate() event
08-23 10:32:07.683 4480-4480/com.example.helloworld D/Android :: The onStart() event
08-23 10:32:07.685 4480-4480/com.example.helloworld D/Android :: The onResume() event
Androidエミュレーターのロック画面ボタンをクリックしてみましょう。次のイベントメッセージが生成されます。 LogCat アンドロイドスタジオのウィンドウ:
08-23 10:32:53.230 4480-4480/com.example.helloworld D/Android :: The onPause() event
08-23 10:32:53.294 4480-4480/com.example.helloworld D/Android :: The onStop() event
Androidエミュレーターで画面のロックを解除してみると、次のイベントメッセージが生成されます。 LogCat Android Studioのウィンドウ:
08-23 10:34:41.390 4480-4480/com.example.helloworld D/Android :: The onStart() event
08-23 10:34:41.392 4480-4480/com.example.helloworld D/Android :: The onResume() event
次に、
08-23 10:37:24.806 4480-4480/com.example.helloworld D/Android :: The onPause() event
08-23 10:37:25.668 4480-4480/com.example.helloworld D/Android :: The onStop() event
08-23 10:37:25.669 4480-4480/com.example.helloworld D/Android :: The onDestroy() event