티스토리 뷰
#안드로이드 어플리케이션을 구성하는 4대 요소
액티비티(Activity)
서비스(Service)
브로드캐스트 수신자(Receiver)
내용 제공자(Provider)
#액티비티란? (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(); } } |
그리고 실행을 하고 로그를 보자.
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> |
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"));
'프로그래밍 > 안드로이드' 카테고리의 다른 글
알림창 띄우기(Multi Choice, Single Choice) (0) | 2016.06.10 |
---|---|
Activity 간 데이터 넘기기 실습 (0) | 2016.06.08 |
안드로이드 개념 (1) | 2016.06.07 |
이벤트 제어하기 (0) | 2016.06.07 |
안드로이드 첫 프로젝트 Hello World (0) | 2016.06.07 |
- Total
- Today
- Yesterday
- 제이쿼리
- Linear Layout
- Erwin
- 메뉴바에 버튼 생성하기
- 게시판 만들기
- sql
- aop
- 쿼리
- spring
- 클래스
- activity
- 뉴스피드 가져오기
- facebook 연동
- query
- mongo db
- Relative Layout
- mybatis
- 배열
- 포스팅하기
- MVC
- intent
- er다이어그램
- 자바프로그래밍
- 글쓰기 버튼
- ERD
- JSP
- jQuery
- 예외처리
- 메소드
- 뒤로가기 버튼
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |