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

onNewIntent 질문입니다..!

0 추천

A 엑티비티에서 B 엑티비티를 호출할 때

intent.putExtra 나 intent.addFlag(Intent.FLAG_ACTIVITY_NEW_TASK) 이런거 해주면

B 엑티비티는 시작될 때 onNewIntent(Intent intent) 가 실행되기 때문에 A 엑티비티에서 인텐트에 넣어준 데이터를 더 쉽게 받을 수 있다고 하더라구요

 

그래서 사용중인데

 

전 호출이 안돼요.. 이유를 모르겠어서 여쭤봅니다 에러로그는 안뜹니다..

 

보내는 부분..

 

intent = new Intent(this, PopupActivity.class);
intent.putExtra("com.btb.pump.pvt.engine.inviteTalkgroupId", inviteTalkgroupId);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
 
 
받는 부분
 
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
 
Log.d("PVT", "Popup's onNewIntent");
 
String inviteDeviceName = intent.getStringExtra("com.btb.pump.pvt.engine.inviteDeviceName");
     Talkgroup currentTalkgroup = (Talkgroup)Infos.get(Infos.TALKGROUP);
    
String message = String.format(getString(R.string.invite_and_accepted_msg), inviteDeviceName, currentTalkgroup.getTalkgroupName());
showMessageBox(message, true, R.string.ok, mClcikListenerForInviteConfirm);
}

여기서 로그가 안찍혀요..호출이 안되는데 이유가 뭔가요?

 

그리고 제가 Override/Implements Methods 할 때 Activity 에서 Override 할 수 있는 메서드들 찾아봐도

onNewIntent가 안보이는데 어찌된건가요?

 

그래서 일단 그냥 하드코딩 해놓은것입니다..

윤둥이 (4,560 포인트) 님이 2013년 8월 21일 질문

1개의 답변

0 추천
onNewIntent는 Activity가 새로 호출되면서 불려지는 부분이 아닙니다.

 

위와 같은 코드에서 startActivity가 호출되고 전환이 될 경우, onCreate -> onResume순으로 타게 됩니다.

onNewIntent 호출 시점은 A라는 Activity가 현재 떠있는 상태에서 A라는 Activity를 위와 같은 방법으로 다시 호출하였을 때 타게 됩니다.
ShakeJ (6,320 포인트) 님이 2013년 8월 21일 답변
...