액티비티 스택에 대하여

Posted on Updated on

Do it! 안드로이드[개정 2판 롤리팝] Day08 04


동영상에서는, “자 그럼 액티비티 스택이 무엇인지 한 번 몰까요?” 라고 시작한다.

이 책과 영상은 WHAT 에 지나치게 집중하는 것 처럼 보인다.

그게 왜 나오게 되었는지에 대한 얘기가 없어서 아쉽다.

그래서 내가 why를 달아본다.

“A가 무엇일까? 그렇다면 그걸 왜 배워야 하는걸까?”

이 동영상은 무엇이 있고 왜 그걸 배우는 것일까?

액티비티 스택, 부가 데이터 전달

왜 액티비티 스택을 배우는 걸까?

나도 잘 모르겠다.

액티비티 스택이 무엇인가?

새로운 액티비티가 나오면, 그 위에 올라가게 된다. 쌓인 액티비티들을 액티비티 스택이라고 한다.

액티비티 스택에서의 중복이 나는데, 이 것을 해결할 수 없을까?

플래그를 사용하면 된다.

setFlags();

인텐트로 부가데이터 전달하기

보내는 쪽

putExtra

intent.putExtra(“title”, “uartis”);
startActivity(intent);

받는 쪽

onCreate 에서

Intent intent = getIntent();
if(intent != null) {
String title = intent.getStringExtra(“title”);
}

왜 부가데이터를 전달하는 것일까?

액티비티 간 데이터를 전달하기 위해서? 다른 화면에서 생성된 정보를 또 다른 화면에서 받기 위해서

인텐트에 부가데이터를 넣는데, 나만의 객체를 직접 전달하는 방법

전달하고 싶다면 Serializable 로 하면 간단하다

public class Person implements Serializable  {}

이런 식으로 나만의 클래스를 만든다. 그리고 putExtra(“person01”, person); 하여 인텐트에 실어 전달한다.

받는 쪽에서는

Person person01 = (Person) intent.intent.getSerializableExtra(“person”);

왜 나만의 객체를 직접 전달할까?

다른 액티비티에서 내가 정의한 클래스 객체들을 액티비티의 실행 결과로써 받고 싶다면 객체를 전달해 줘야 할 것이다. 그래서 나만의 객체를 전달하는 것을 배워야 한다.

여담이지만 모든 존재는 리턴 값을 가질 수 있는 것 같다. 그 것이 죽을 때 그 삶이 전달 될 수 있다. 나는 어떤 식으로 다음 인류에게 나의 정보가 전달될까?

Serializable 이 있지만 Parcelable 이 더 좋다고 한다. 왜일까?

Serializable 은 좀 더 복잡하다고 한다. Parcelable 을 사용해서 앱을 짜면 좀 더 빨라질 수 있따.

primitive 들은 byte array 로 전달하는 경우가 많다.

Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중