보기가 조금 난잡할 수 있지만, 찬찬히 읽어보면 아주 쉽게 적용 가능할 것이다.

 

명시적 인텐트, 되돌리기 X

호출하는 액티비티 코드

Intent intent = new intent(호출하는 액티비티, 호출되는 액티비티.class);

startActivity(intent);

호출되는 액티비티 코드

Intent intent = getIntent();

데이터 전송 없이 단순히 화면 전환을 위해서만 사용.

 

명시적 인텐트, Extra 데이터, 되돌리기 X

호출하는 액티비티 코드

Intent intent = new Intent(호출하는 액티비티, 호출되는 액티비티.class);

intent.putExtra(“data1”, “hello”); // 보낼 데이터1

intent.putExtra(“data2”, “100”); // 보낼 데이터2

startActivity(intent);

호출되는 액티비티 코드

Intent intent = getIntent(); // 자신을 실행시킨 인텐트 획득

String data1 = intent.getStringExtra(“data1”); // 넘어온 데이터 획득

int dat2 = intent.getIntExtra(“data2”, 0); // 넘어온 데이터 획득22 // 0은 디폴트값..

새로 데이터를 넘기고 싶다면, 다른 인텐트를 생성해줘야 한다. 이전 액티비티로 다시 보내려면,되돌리기를 사용하면 되므로, 다음 액티비티로 넘길 경우에 그렇게 하자.

 

 

명시적 인텐트, 되돌리기

호출하는 액티비티 코드

Intent intent = new Intent(호출하는 액티비티.this , 호출되는 액티비티.class);

startActivityForResult(intent, REQUESTCODE); // REQUESTCODE1 이상, 임의의 수. 분기를 위함.

여러 개의 액티비티를 동시에 분기를 나눠 다루기 위해, 쫙 뿌려주고 if라던지 switch로 판단.

호출되는 액티비티 코드 (되돌리기 시에는 자신을 실행시킨 인텐트에 바로 결과 데이터를 넣음)

Intent intent = getIntent(); // 자신을 실행시킨 인텐트 획득

Intent.putExtra(“location”, textView.getText().toString()); // 돌려보낼 데이터 저장.

setResult(RESULT, intent); // 돌려보낼 상태를 저장. 업무 수행 결과 추가. 정상인지 실패인지..

if(작동잘됨)

RESULT = 0;

Else if(작동실패)

RESULT = 1;

if(requestCode ==

           if(resultCode == 0 )

           else if(resultCode == 1)

*finish(); // 바로 쓰지 말고, 뒤로가기 혹은 어떤 이벤트의 처리로 끝내기를 한다.

호출한 액티비티 코드

@Override

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

           If(requestCode == 10 && resultCode == RESULT_OK){

                     String location = data.getStringExtera(“location”);

           }

}

 

인텐트 필터

자바.

Intent intent = new Intent();

intent.setAction(“com.some.ACTION_VIEW”);

intent.addCategory(“com.some.category.MYCATEGORY”) // 직접 안 써도 DEFAULT 자동생성

intent.setData(Uri.parse(“geo:”));

startActivity(intent);

<인텐트 필터, 태그>

<activity android:name=”.SomeActivity”>

           <intent-filter>

                     <action android:name=”com.some.ACTION_VIEW”/>

//<category android:name=”android.intent.category.DEFAULT/> // 디폴트는 예외 없이 무조건 다 넣는다!!!

<category android:name=”android.intent.category.MYCATEGORY/>

<data android:scheme”geo”/>

           <intent-filter>

</activity>