해당 메서드는 액티비티를 상속 받았을시 사용가능하다.


비슷한 메서드로는 startActivity가 있다. 해당 메서드는 매개변수로 intent를 받는다.


기존 액티비에에서 새로운 액티비티를 생성할시 사용한다. 이때 기존 액티비티의 정보를


새로운 액티비티로 전달 할 시 intent객체에 putExtra 메서드로 정보들을 전달한다. 


오늘 알아볼 메서드 startActivityForResult는 메서드 이름에서도 알 수 있드시, 액티비티를 생성한 후


생성한 액티비티가 종료됬을시, 기존 액티비티에게 신호를 주기 위한 메서드 이다.


처음 액티비티의 이름을 MainActivity, 생성할 액티비티 이름을 SubActivity라 칭하겠다.


startActivityForResult 메서드의 매개변수는 intent와,


하나의 메인 액티비티에서 여러개의 액티비티를 실행 시켰을 경우 구분지을 int형 변수 


이렇게 2개를 받는다. 신호를 받은 후 처리 하는곳은 onActivityResult 메서드 이다. 


사용방법은 이렇다. 


MainActivity.java


....


...

Intent intent = new Intent(MainActivity.this,SubActivity.class);

intent.putExtra("code", 1);    //이런식으로 액티비티에 정보를 보낸다.

startActivityForResult(intent , 0);


@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data){

super.onActivityResult(requestCode, resultCode, data);


// ....... 여기서 하고싶은 행위를 작성하면 된다.


}



SubActivity.java


....


...


@Override

protected void onDestroy(){      //액티비티가 종료될 때의 메서드

super.onDestroy();

setResult( 0 ); // 여기에 넣는 int형 정수는 MainActivity의 onActivityResult안에서 requestCode로 들어간다.

}




포스팅이 도움 되셨다면, 커피 한잔 후원해주세요!
더 좋은 포스팅 작성에 큰 힘이 됩니다.

Buy me a coffeeBuy me a coffee

+ Recent posts