Android-acitivities
Android-アクティビティ
'_アクティビティは、Java.Androidアクティビティのウィンドウまたはフレームのように、ユーザーインターフェイスを持つ単一の画面を表します。Androidアクティビティは、ContextThemeWrapperクラスのサブクラスです。_
C、C ++、またはJavaプログラミング言語を使用したことがある場合は、プログラムが* main()関数から始まることを確認しておく必要があります。 非常によく似た方法で、Androidシステムは_onCreate()コールバックメソッドの呼び出しで始まる *Activity でプログラムを開始します。 以下のアクティビティライフサイクル図に示すように、アクティビティを開始する一連のコールバックメソッドと、アクティビティを破棄する一連のコールバックメソッドがあります:(_image courtesy:android.com)
Activityクラスは、次のコールバックを定義します。 イベント すべてのコールバックメソッドを実装する必要はありません。 ただし、それぞれを理解し、アプリがユーザーの期待どおりに動作することを保証するものを実装することが重要です。
Sr.No | Callback & Description |
---|---|
1 |
onCreate() これは最初のコールバックであり、アクティビティが最初に作成されたときに呼び出されます。 |
2 |
onStart() このコールバックは、アクティビティがユーザーに見えるようになると呼び出されます。 |
3 |
onResume() これは、ユーザーがアプリケーションとの対話を開始するときに呼び出されます。 |
4 |
onPause() 一時停止されたアクティビティはユーザー入力を受け取らず、コードを実行できず、現在のアクティビティが一時停止され、以前のアクティビティが再開されているときに呼び出されます。 |
5 |
onStop() このコールバックは、アクティビティが表示されなくなったときに呼び出されます。 |
6 |
onDestroy() このコールバックは、システムによってアクティビティが破棄される前に呼び出されます。 |
7 |
onRestart() このコールバックは、アクティビティが停止した後に再開されるときに呼び出されます。 |
例
この例では、Androidアプリケーションのアクティビティライフサイクルを示す簡単な手順を紹介します。 _Hello World Example_の章で作成したAndroidアプリケーションを変更するには、次の手順に従います-
Step | Description |
---|---|
1 | You will use Android studio to create an Android application and name it as HelloWorld under a package com.example.helloworld as explained in the Hello World Example chapter. |
2 | Modify main activity file MainActivity.java as explained below. Keep rest of the files unchanged. |
3 | Run the application to launch Android emulator and verify the result of the changes done in the application. |
以下は、変更されたメインアクティビティファイル 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 file_から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.finddevguides7.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スタジオからアプリを実行するには、プロジェクトのアクティビティファイルの1つを開き、ツールバーの[画像を実行:/android/images/eclipse_run.jpg [Eclipse Run Icon]アイコンをクリックします。 AndroidスタジオはアプリをAVDにインストールして起動し、セットアップとアプリケーションで問題がなければエミュレータウィンドウを表示し、Androidスタジオの LogCat ウィンドウに次のログメッセージが表示されます-
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エミュレーターのロック画面ボタンをクリックすると、Android Studioの 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エミュレータで画面のロックを解除すると、Androidスタジオの LogCat ウィンドウで次のイベントメッセージが生成されます。
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
次に、Androidエミュレータの[戻る]ボタンAndroid Back Buttonをクリックしてもう一度試してみましょう。Androidスタジオの LogCat ウィンドウに次のイベントメッセージが生成され、アクティビティライフが完了します。 Androidアプリケーションのサイクル。
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