Intent
: 앱의 컴포넌트 기반, 의뢰를 받고 실행을 명령하는 구조엑티비티
(화면출력 목적), 서비스
(백그라운드 작업), 콘텐츠 프로바이더
(데이터 공유), 브로드캐스트 리시버
(이벤트 모델로 수행)독립적
이다.안드로이드시스템
)를 사용한다.컴포넌트
= 클래스의 생명주기를 시스템이 관리Intent(인텐트)
이다.인텐트(Intent)
: 컴포넌트를 실행하기 위해 시스템에 넘기는 정보 Intent intent = new Intent(this, DetailActivity.class);
startActivity(intent)
Intent Filter
정보 사용 <activity android:name=".DetailActivity">
<intent-filter>
<action android:name="com.example.ACTION_VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
Intent intent = new Intent();
intent.setAction("com.example.ACTION_VIEW");
startActivity(intent);
<activity android:name=".DetailActivity">
<intent-filter>
<action android:name="com.example.ACTION_VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="http"/>
</intent-filter>
</activity>
- action
: 컴포넌트가 어떤 능력을 갖고 있는지에 대한 문자열(VIEW, EDIT,...)
- category
: 컴포넌트에 대한 추가정보, 어느 범주의 컴포넌트인지 표현하는데 사용(Lancher, browser,..)
- data
: 컴포넌트 실행 위해 필요한 데이터에 대한 상세 정보 명시
- 암시적 인텐트 사용시 <category android:name="android.intent.category.DEFAULT"/>
는 필수적으로 작성해야함( category 지정해도 반드시 필수작성)
<data android:scheme="geo"/>
라고 선언 Intent intent = new Intent();
intent.setAction("com.example.ACTION_VIEW");
intent.setData(Url.parse("geo:");
startActivity(intent);
Intent intent = new Intent(this, DetailActivity.class);
intent.putExtra("data1","hello");
intent.putExtra("data2",100);
startActivity(intent);
Intent intent = getIntent();
String data1 = intent.getStringExtra("data1");
int data2 = intent.getIntExtra("data2",0);
startActivityForResult()
사용o Intent intent = new Intent(this, DetailActivity.class);
startActivityForResult(intent,10);
Intent intent = getIntent();
intent.putExtra("location", textView.getText().toString());
setResult(RESULT_OK, intent)'
finish();
requestCode
: 개발자가 0이상의 숫자를 지정한 뒤 결과를 돌려받을 때 구분받기 위해 사용setResult()
: 자신의 싱태를 지정finish()
: 함수 호출 종료