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 스튜디오에서 앱을 실행하려면 프로젝트의 활동 파일 중 하나를 열고
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
다음으로
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