마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

액티비티 전환 질문입니다!

0 추천
A <-----> B <------> C

A, B, C : 액티비티

화살표 방향 : 화면 전환 가능 여부입니다.

 

인텐트로 액티비티 전환을 하는데요. A -> B일 때와, C -> B일 때 각각 B에서 실행되는 이벤트를 달리 처리하고 싶은데요.

예를 들어 A에서 B로 갈 때는 애니메이션이 실행되지만, C에서 B로 갈 때는 실행되지는 않는 식으로 처리하려면 어떻게 해야 할까요?

감사합니다!
익명사용자 님이 2016년 2월 18일 질문

3개의 답변

0 추천
 
채택된 답변
1. 제일 간단하게 A->B로갈때 intent로 boolean값을 넘깁니다.

2. B에서 onResume에 이값이 true면 애니메이션 실행, false면 실행하지 않게 구현합니다.

특정 작업을한후에 다시 false로 세팅을 합니다.

3. C -> B로 갈때 finish() 해버리면 전달받은 값이 없기때문에 실행되지 않겠죠.
캬옹이 (37,920 포인트) 님이 2016년 2월 18일 답변
0 추천
Intent intent = new Intent(this, A.class);
startActivity(this);
overridePendingTransition(0,0);

위의 코드는 액티비티를 시작할 때 Animation 효과를 없애는 코드입니다.

 

익명사용자 님이 2016년 2월 18일 답변
아~ 제가 말하는 것은 전환 도중에 실행되는 애니메이션을 말하는 게 아니라 그냥 B가 실행될 때 실행할 이벤트를 말하는 겁니다.
그러니까
class B {
if (A에서 B로 넘어올 때) {
play(); } else {}
}
이런 식으로 사용하려 하는데 'A에서 B로 넘어올 때'를 대신해줄 수 있는 코드를 알고 싶습니다!
그냥 intent에 값하나 넣어서 보내면 돼는거 아닌가요?
받는쪽에서 getIntent해서 넘어온 값 보고 하면 될거 같은데요
0 추천
단순 전환 순간 animation이 아니라 다양한 처리를 하고 싶다고 하면

A->B 는 A에서 intent 를 만들면서 가는 것이니까 new intent 할때 data 를 넣어서 하면 될꺼 같구

C->B 는 C가 죽으면서 오는 것이니까 activity result 로 받으면 될 거 같습니다.
익명사용자 님이 2016년 2월 18일 답변
...