티스토리 뷰

  • 지금 까지 우리가 공부한 내용을 보면, 액티비티를 띄우기 위해서는 인텐트를 사용하였고, 이때 데이터를 넣어서 보낼때는 엑스트라 데이터를 보내었다 
  • 액티비티는 스택구조로 되어있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
새로운 액티비티 (new-> 실행 액티비티
 
이전 실행 액티비티
액티비티 #n-1
...
...
 
액티비티는 차례대로 쌓인다고 생각하라(스택)
 
이때, 우리가 순서대로 쌓다보면 문제가 생긴다. #1 액티비티에서 #2 액티비티가 쌓이고 그다음에 또 #2 액티비티가 또 쌓이가 되는경우가 생긴다.
#2번째 액티비티가 있으면 그것을 재사용하면 그것들을 없앨 수 있다.
여기서 이때, 옵션을 주는데 "플래그"라고 칭한다.
시스템이 해석하면서 -> 어떻게 처리해라 라는 식이다.
cs

  • 가장 많이 쓰이는 플래그는?
1
2
3
4
5
6
7
8
9
10
11
FLAG_ACTIVITY_SINGLE_TOP 
FLAG_ACTIVITY_NO_HISTORY
FLAG_ACTIVITY_CLEAR_TOP ( 위에 있던 것들을 없애주는 역할을 한다.)
 
메소드 : setFlags(),addFlags() 이런 메소드를 사용하여 인텐트를 준다라고 생각을 하면된다.
 
인텐트 -> onCreate()메소드 안에 getIntent() 메소드를이용해서 띄울 수 있다.
(시스템위치 중간)
 
기존에 만들어진것들이 있을 때, onCreate()메소드는 ACTIVITY가 생성될 떄 자동으로 호출되는데, 이것을 콜백함수라고 생각하면 된다. 이때, ACTIVITY가 재사용되는경우에는 onCreate()가 사용되지 않는다.
전달받은 인텐트를 확인하고 싶은경우 getIntent()를 사용하면 되는데, 재사용되는 경우에는 onCreate()를 호출하지 않기 때문에 직접 콜백함수를 만들어야한다. 이때 사용하는 메소드는 onNewIntent()메소드를 재정의 해서 직접 구현해 호출 해 주어야 한다. 
cs

사진 참고)


1
2
3
4
5
6
7
CLEAR_TOP 중복 되는 탑을 없애 준다
 
NO_HISTORY 쌓여져 있던게 없어지게 해준다.
 
이 플래그 2종류는 -> 실무에서 이 두개를 같이 사용하게 되는 경우가 많다.
 
 
cs



  • 부가 데이터
1
2
3
4
putExtra() 메소드
 
프리미티브 타입이 들어 갈 수 있다.
put() 으로 넣고 -> get() 으로 뺀다라는것을 기억해라.
cs



putExtra() 메소드 형태 확인 할것


  • 변수가 몇개든 상관없이 그 안에 객체안에 있는 데이터를 전달하고 싶을 경우가 있는데, 우리가 가장 쉽게 할 수 있는것이 시리얼라이저블을 사용한다.
1
2
객체 안에 있는것을 파일로 저장하거나 네트워크로 다른곳으로 보내고 싶은데 데이터만 뽑아낸다고 생각하면 된다. 그 어떤 객체의 타입이나 같이 전달 되어야하는데, 이때 용량이 커질 문제가 있음. 
이러한 문제를 해결 하기 위해서는 어떻게 해야할까?
Parcelable을 써서 전달해야 하는데, 객체 안에 보면 변수의 데이터가 들어가는데, 그 안의 변수들을 별도로 뽑아서 변수들의 데이터만 따로 뽑아서 데이터의 변수들을 별도로 뽑아서 데이터만 전달할 수 있도록 구성 해준다.(구성 요소들을 전달한다고 생각)
cs



  • 다음에는 객체를 넣어서 전달하는것을 해볼 것입니다.
1
2
3
1. Parcelble
2. 시리얼라이즈
이 두개를 사용해서 전달 할 것입니다.
cs


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
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
글 보관함