티스토리 뷰

#안드로이드 어플리케이션을 구성하는 4대 요소

  • 액티비티(Activity)

  • 서비스(Service)

  • 브로드캐스트 수신자(Receiver)

  • 내용 제공자(Provider)



이번 포스팅에서는 안드로이드 어플리케이션을 구성하는 4대 요소 중 액티비티에 대해 알아본다.


#액티비티란? (Activity)

  • 현재 보여지고 있는 화면

  • 현재 활성화된 화면

  • 앱 쓰다 보면 버튼을 클릭했을 때 화면이 위로 사라진다거나, 넘어가는 인터랙션을 보았을 것이다. 이게 Activity를 쌓아두었다가 전환시켜주는 것이다.

  • 사용자와 상호작용할 수 있는 유일한 요소이다.

  • 액티비티는 화면들이 여러개가 왔다갔다 한다. 그 때, 데이터를 보내줄 수 있다. 그런 다음에 처리한 결과를 다시 호출한 액티비티로 돌려주기도 한다.

  • 인텐트 : 액티비티가 액티비티를 호출하는 과정

  • Activity 수명 주기 - 반드시 기억해두기!






#Activity 수명주기 실습


1. MainActivity.java 를 다음과 같이 적어준다.



2. 그리고 실행해보면,



화면이 뜨는 즉시 토스트메시지를 확인할 수 있다.


로그는 아래에서 확인할 수 있는데, Verbose에 체크되어 있으면 모든 로그를 다 볼수 있다.

만약에, 내가 지정한 로그만 보고싶다면 오른쪽의 체크박스에서 Edit Filter Configuration을 선택한다.


그러면 아래와 같은 창이 뜨고, 아래처럼 써주고 OK를 누른다. Log tag는 코드에서 작성했던 “ACTIVITY_LC”를 적어준다.




그러면 아래처럼 내가 지정했던 로그만 뜨는 것을 볼 수 있다.




이제 상태메소드를 모두 적어서 실행을 해보자. 코드는 다음과 같다.


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

package com.ktds.smahn.myactivity;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.util.Log;

import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

   @Override

   protected void onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       setContentView(R.layout.activity_main);

       Log.d("ACTIVITY_LC", "onCreate 호출됨");

       //ApplicationContext : 지금 실행되고 있는 어플리케이션에 관련된 정보를 가지고 있다.

       Toast.makeText(getApplicationContext(), "onCreate 호출됨", Toast.LENGTH_SHORT).show();

   }

   @Override

   protected void onStart() {

       super.onStart();

       Log.d("ACTIVITY_LC", "onStart 호출됨");

       Toast.makeText(getApplicationContext(), "onStart 호출됨", Toast.LENGTH_SHORT).show();

   }

   @Override

   protected void onResume() {

       super.onResume();

       Log.d("ACTIVITY_LC", "onResume 호출됨");

       Toast.makeText(getApplicationContext(), "onResume 호출됨", Toast.LENGTH_SHORT).show();

   }

   @Override

   protected void onPause() {

       super.onPause();

       Log.d("ACTIVITY_LC", "onPause 호출됨");

       Toast.makeText(getApplicationContext(), "onPause 호출됨", Toast.LENGTH_SHORT).show();

   }

   @Override

   protected void onStop() {

       super.onStop();

       Log.d("ACTIVITY_LC", "onStop 호출됨");

       Toast.makeText(getApplicationContext(), "onStop 호출됨", Toast.LENGTH_SHORT).show();

   }

   @Override

   protected void onRestart() {

       super.onRestart();

       Log.d("ACTIVITY_LC", "onRestart 호출됨");

       Toast.makeText(getApplicationContext(), "onRestart 호출됨", Toast.LENGTH_SHORT).show();

   }

   @Override

   protected void onDestroy() {

       super.onDestroy();

       Log.d("ACTIVITY_LC", "onDestroy 호출됨");

       Toast.makeText(getApplicationContext(), "onDestroy 호출됨", Toast.LENGTH_SHORT).show();

   }

}

Colored by Color Scripter

cs


그리고 실행을 하고 로그를 보자.

onCreate → onStart → onResume 순서로 호출되었다.


멀티태스킹 버튼을 눌러보자.

onPause → onStop 이 호출되었다.


다시 어플리케이션을 눌러보자.

onRestart → onStart → onResume 순서로 호출되었다.


어플리케이션을 꺼보자.

onPause→ onStop → onDestroy 순서로 호출되었다.





# SubActivity 만들어 AndroidManifests.xml 추가되는지 확인하기


1. SubActivity 만들기




2. 다음과 같이 작성한다.




3. AndroidManifests.xml 확인하기


<activity android:name=".SubActivity"></activity>


가 추가된 것을 볼 수 있다.


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

   package="com.ktds.smahn.myactivity">

   <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>

       <activity android:name=".SubActivity"></activity>

   </application>

</manifest>

Colored by Color Scripter

cs



4. activity_main.xml 수정



5.  MainActivity.java 수정



6. 실행


    





# Activity 간 데이터 보내고 받기




1. MainActivity.java 에서 아래 코드를 버튼 클릭하는 부분에 추가해준다.

  • putExtra를 쓰면 데이터를 보낼 수 있다.


intent.putExtra("message", "반갑습니다.");

startActivity(intent);



2. SubActivity.java 에서 데이터를 받는 코드를 적는다.

  • getIntent()로 데이터를 받을 수 있다.


Intent intent = getIntent();

Log.d("ACTIVITY_LC", intent.getStringExtra("message"));


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함