본문 바로가기
  • 기업가 장준영
Android

Android 엑티비티간 데이터 통신 방법

by 장준영 2020. 12. 14.

 

데이터 통신 방법

 

 


 

 

Intent를 이용하는 방법

 

송신

A엑티비티의 intent객체 안에 putExtra로 데이터 넣고 이 intent객체로 B엑티비티를 시작함

 

Intent intent = new Intent(getApplicationContext(),B.class);
intent.putExtra("Data_to_B",Data_to_B);
startActivity(intent);   

 

 

 

 

수신

B 엑티비티에서 getIntent로 A에서 보내온 intent객체를 받고 거기서 get자료형Extra로 intent객체 안에있는

데이터 받아오면 됌

 

Intent intent = getIntent();
Data_from_A = intent.getIntExtra("Data_to_B",0);

 

 


 

 

startActivityForResult와 onActivityResult를 이용하는 방법

 

송신요청

 

A 엑티비티에서 startActivityForResult(intent객체, requestCode);로

B 엑티비티를 시작해줌

 

startActivityForResult(intent,1001);

 

 

 

 

송신

 

B 엑티비티에서 해야할 작업 (Ex.. 데이터 처리...)가 끝이나고 

intent객체 안에 데이터를 넣어준 후 setResult(resultCode, intent객체);로

A엑티비티에 전달할 데이터를 담은 intent객체를 넣어줌

 

Intent intent = new Intent();

intent.putExtra("Data_to_A",Data_to_A);
setResult(7777,intent);
finish();

 

 

 

 

수신

 

B엑티비티가 닫치고 다시 시작된 A엑티비티는 

무조건 onResume()호출 이전에 onActivityResult()를 호출함

onActivityResult()내부에서 데이터를 처리하면 됌

 

protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 1001){

if(resultCode == 7777){
Data_from_B= data.getIntExtra("Data_to_A",0);
saveData_from_B(); //이건 데이터 세이버임 그냥 보통 여기서 데이터를 저장하는게 편해서 내가 쓴거임 없어도 되긴함
}

}
}

 

 

 


이거 두게만 제대로 써도 웬만한건 다 만들 수 있음 ㅇㄱㄹㅇ ㅂㅂㅂㄱ ㅇㄱㄱㅆㅅㅌㅊ ㅇㅈ? ㅇㅇㅈ

댓글