1. 인텐트란?
- 액티비티 <-> 액티비티 간 / 액티비티 <-> 서비스 간 등 전달을 돕는 객체(또는 데이터)
- 명시적 인텐트 (Explicit Intent) : 인텐트에 클래스 객체나 컴포넌트 이름을 지정하여 호출할 대상을 확실히 알 수 있는 경우
- 암시적 인텐트 (Implicit Intent) : 액션과 데이터를 지정하긴 했지만 호출할 대상이 달라진 수 있는 경우
ㄴ 범주 (Category), 타입 (Type), 컴포넌트 (Component), 부가 데이터 (Extras)
2. 인텐트의 대표적 속성
(1) 범주 (Category)
- 액션이 실행되는 데 필요한 추가적인 정보를 제공
(2) 타입 (Type)
- 인텐트에 들어가는 데이터의 MIME 타입을 명시적으로 지정
(3) 컴포넌트 (Component)
- 인텐트에 사용될 컴포넌트 클래스 이름을 명시적으로 지정
(4) 부가 데이터 (Extras)
- 인텐트는 추가적인 정보를 넣을 수 있도록 번들 (Bundle) 객체를 담고 있음
- 이 객체를 통해 인텐트 안에 더 많은 정보를 넣어 다른 애플리케이션 구성요소에 전달할 수 있음
3. 인텐트 예제 소스
(1) activity_main.xml
(2) MainActivity.java
public class MainActivity extends AppCompatActivity {
EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) findViewById(R.id.editText);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String receiver = editText.getText().toString();
// 전화걸기 인텐트
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel : " + receiver));
// 인텐트 객체를 시작화면으로 전달
startActivity(intent);
Intent intent2 = new Intent();
// 문자열로 컴포넌트(또는 액티비티) 직접 지정
ComponentName name = new ComponentName("org.techtown.callintent", "org.techtown.callintent.MenuActivity");
intent2.setComponent(name);
startActivity(intent2);
}
});
}
}
'Android' 카테고리의 다른 글
[Android] 안드로이드 : 액티비티 수명주기 (0) | 2019.12.10 |
---|---|
[Android] 안드로이드 : 부가데이터 (0) | 2019.12.09 |
[Android] 안드로이드 : 화면 구성과 화면 간 전환 (0) | 2019.12.05 |
[Android] 안드로이드 : 그리드뷰 사용하기 (0) | 2019.12.04 |
[Android] 안드로이드 : 스피너 사용하기 (0) | 2019.12.04 |
댓글