activity 를 intent 로 실행
activity 를 intent 로 실행하는데는 두개 함수가 존재한다.
startActivity
startActivityForResult
차이는 startActivity 이벤트형식으로 실행만 시키고 끝나는가, startActivityForResult 는 실행을 시킨 다음에 실행시킨 activity 와 상호작용을 하는가로 나뉜다.
startActivity 는 그래서 activity 를 실행할때보다는 intent 를 실행해 원하는 데이터를 보낼때 사용한다.
이때 intent.putExtra 와 intent.getStringExtra 를 함께 사용한다
startActivity
public void startActivity(new Intent(MainActivity.this, SubActivity.class));
startActivity 는 mainActivity 에서 subActivity 를 실행한다, 로 그 의미가 다한다
하지만
startActivityForResult
MainActivity 에서 작성한다
public void startActivityForResult (Intent new Intent(MainActivity.this, SubActivity.class),
int requestCode)
우선 intent 는 (실행시키는 activity, 실행되는 activity) 순서로 배치해야 한다.
requestcode 는 activity 에서 받는 신호 코드를 의미한다.
실행된 SubActivity 에서 작성한다
public final void setResult (int resultCode)
subActivity 에서 setResult 를 통해서 윈하는 시점에 mainActivity 에세 resultCode 를 쏠 수 있다.
이때 resultCode 에는 RESULT_OK 라는 신호와 보내고자 하는 메시지를 보낼 수 있다.
여기서 보내진 코드는 onActivityResult 에서 requestcode, resultCode, Data 가 받아진다.
MainActivity 에서 작성한다
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
실행할때 보낸 requestCode, 실행되는 Activity에서 보낸 resultCode 가 output 된다.
'개발 > Android Studio' 카테고리의 다른 글
[Android] Aidl 로 class 옮기기 (0) | 2023.04.04 |
---|---|
[Android] PackageManager (0) | 2023.03.25 |
[Android] sharedpreference (0) | 2023.03.17 |
[Android Studio] 부팅시 service 구동하기 (0) | 2023.03.13 |
[Android Studio] Context, getApplicationContext 란 (0) | 2023.03.13 |