Android-활동

활동은 Java의 창 또는 프레임과 같은 사용자 인터페이스가있는 단일 화면을 나타냅니다. Android 활동은 ContextThemeWrapper 클래스의 하위 클래스입니다.

C, C ++ 또는 Java 프로그래밍 언어로 작업했다면 프로그램이 main()함수. 매우 유사한 방식으로 Android 시스템은ActivityonCreate () 콜백 메서드 에 대한 호출로 시작 합니다. 활동을 시작하는 일련의 콜백 메서드와 아래 활동 수명주기 다이어그램과 같이 활동을 분해하는 일련의 콜백 메서드가 있습니다. ( 이미지 제공 : android.com )

Activity 클래스는 다음 콜백 즉, 이벤트를 정의합니다. 모든 콜백 메서드를 구현할 필요는 없습니다. 그러나 각각을 이해하고 앱이 사용자가 기대하는 방식으로 작동하도록 구현하는 것이 중요합니다.

Sr. 아니요 콜백 및 설명
1

onCreate()

이것은 첫 번째 콜백이며 활동이 처음 생성 될 때 호출됩니다.

2

onStart()

이 콜백은 활동이 사용자에게 표시 될 때 호출됩니다.

onResume()

사용자가 응용 프로그램과 상호 작용하기 시작할 때 호출됩니다.

4

onPause()

일시 중지 된 활동은 사용자 입력을받지 않으며 코드를 실행할 수 없으며 현재 활동이 일시 중지되고 이전 활동이 재개 될 때 호출됩니다.

5

onStop()

이 콜백은 활동이 더 이상 표시되지 않을 때 호출됩니다.

6

onDestroy()

이 콜백은 활동이 시스템에 의해 파괴되기 전에 호출됩니다.

7

onRestart()

이 콜백은 활동이 중지 된 후 다시 시작될 때 호출됩니다.

이 예에서는 Android 애플리케이션 활동 수명주기를 보여주는 간단한 단계를 안내합니다. Hello World 예제 장 에서 만든 Android 애플리케이션을 수정하려면 다음 단계를 따르십시오.

단계 기술
1 Android 스튜디오를 사용하여 Android 애플리케이션을 만들고 Hello World 예제 장에 설명 된대로 com.example.helloworld 패키지에서 HelloWorld 로 이름을 지정합니다 .
2 아래에 설명 된대로 기본 활동 파일 MainActivity.java 를 수정하십시오 . 나머지 파일은 변경하지 마십시오.
애플리케이션을 실행하여 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);

애플리케이션은 제한없이 하나 이상의 활동을 가질 수 있습니다. 애플리케이션에 대해 정의하는 모든 활동은 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 스튜디오에서 앱을 실행하려면 프로젝트의 활동 파일 중 하나를 열고

도구 모음에서 실행 아이콘을 클릭하십시오 . Android 스튜디오는 AVD에 앱을 설치하고 시작합니다. 설정 및 애플리케이션에 문제가 없으면 에뮬레이터 창이 표시되고 다음 로그 메시지가 표시됩니다.LogCat Android 스튜디오의 창-

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 스튜디오의 창 :

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 에뮬레이터에서 뒤로 버튼 을 다시 클릭 하면 다음과 같은 이벤트 메시지가 생성됩니다.LogCat Android 스튜디오에서 창을 열면 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