이글은 Intent를 많이 보지만 정확히 알지 못하는 사람들을 위해 작성합니다.
Intent는 딴것은 생각할가치도 없습니다. 오직 안드로이드의
화면 간의 이동에 만 쓰인다고생각하시면 됩니다.
즉 화면 a에서 화면 b로 이동시 화면 b에서 c로 이동시 이 Intent가쓰이게 됩니다.
안드로이드 프로그래밍을 좀 하셨던분 아니 한번이라도 보셨던 분인경우는 밑에 코드를 한번씩은 접하셨을 겁니다.
Intent intent = new Intent(this, aa.class);
startActivity(intent); |
이코드를 간략히 설명하면 호출하는쪽은 this , 호출되는쪽은 aa.class가 되는겁니다.
즉 a라는 화면은 this , b라는 화면은 aa.class 로 a->b로 화면간의 이동간에 쓰이게 되는것입니다.
startActivity() 라는 함수를 통해 화면전환은 이루어집니다. 화면전환을 하는 메서드는 이것말고도 하나가 더있는데
startActivityForResult() 메서드가있습니다. startActivityForResult() 메서드는 새로 오픈된 폼으로 부터 피드백을
추적하기 위해 사용됩니다. 정리하면...
startAcitivity() 단순히 화면전환
startActivityForResult() 오픈된폼으로부터 피드백 추적 가능
ex) 요청 코드로 이전 화면 식별가능 |
실제 활용되는 소스의 예로 살펴 보겠습니다.(그게 이해가 빠르므로 훔)
다음에 나오는 소스는 오픈소스중 하나인 링드로이드라는 소스의 부분에서 뽑은겁니다. 실제로 어떻게 쓰는지 한번 보겠습니다.
private static final int REQUEST_CODE_EDIT = 1;
private void onRecord() {
try {
Intent intent = new Intent(Intent.ACTION_EDIT,
Uri.parse("record"));
intent.putExtra("was_get_content_intent",
mWasGetContentIntent);
intent.setClassName(
"com.ringdroid",
"com.ringdroid.RingdroidEditActivity");
startActivityForResult(intent, REQUEST_CODE_EDIT);
} catch (Exception e) {
Log.e("Ringdroid", "Couldn't start editor");
}
} |
딴소스부분은 볼 필요없고 굵은글씨 부분만 보면 됩니다.