단방향 통신은 데이터를 주는것 밖에 못한다.
Main Activity
// 두번째 액티비티를 실행시키고 싶다.
//해당 엑티비티가 다른 액티비티를 실행시킨다의미로 파라미터를 설정해줘야한다.
Intent intent = new Intent(MainActivity.this, SecondActivity.class); //Intent 객체 생성
// 객체로 생성해 메모리에 올리라는 뜻
// 메모리에 생성한 적이 없기때문에 this를 사용할 수 가 없다.
// 데이터를 전달하기 위해 Intent에 담아주자.
intent.putExtra("name", name); //key : value로 저장됨
intent.putExtra("age", age);
// 단방향 데이터 전달 액티비티 실행
startActivity(intent);
Second Activity 데이터 받아서 사용하기
// 받아오는 데이터가 있으면, 데이터를 받아온다.
String name = getIntent().getStringExtra("name");
age = getIntent().getIntExtra("age", 0);
데이터를 주고 받는 통신을 말한다.
단방향 처럼 데이터를 설정하고 추가하는것은 같으나, 통신을 하는 방법이 다르다.
Main Activity
//매개 변수
// 양방향 데이터 교환 액티비티 실행 => ActivityResultLauncher
ActivityResultLauncher<Intent> launcher = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
new ActivityResultCallback<ActivityResult>() {
@Override
public void onActivityResult(ActivityResult result) {
//데이터를 받아오는 코드는 여기에 작성.
if ( result.getResultCode() == 22){
int futureAge = result.getData().getIntExtra("data", 0);
}
}
});
//--------------------------------------
//onCreate()
// 두번째 액티비티를 실행시키고 싶다.
//해당 엑티비티가 다른 액티비티를 실행시킨다의미로 파라미터를 설정해줘야한다.
Intent intent = new Intent(MainActivity.this, SecondActivity.class); //Intent 객체 생성
// 데이터를 전달하기 위해 Intent에 담아주자.
intent.putExtra("name", name); //key : value로 저장됨
intent.putExtra("age", age);
// 양방향 데이터 교환 액티비티 실행 => ActivityResultLauncher
launcher.launch(intent); // 실행
Second Activity
//데이터를 받을 때 단방향과 동일 하다.
// 받아오는 데이터가 있으면, 데이터를 받아온다.
String name = getIntent().getStringExtra("name");
age = getIntent().getIntExtra("age", 0);
//데이터를 다시 보낼때는 Main에서 받을때 사용되는 코드와 동일한 코드로 넣어야한다.
// 데이터를 보내기위해 intent가 필요하다.
Intent intent = new Intent(); // 새로 다른 액티비티를 생성하는 것이 아니기때문에 적을 필요 없다.
intent.putExtra("data", data);
setResult(22, intent);
// resultCode : 기준 상태 코드 (구분을 위한)
// data : 보낼 데이터
소중한 정보 잘 봤습니다!