Android Activity 와 Intent 상세 설명 및 예시 코드
이전의 예 는 Activity 를 사용 해 왔 습 니 다.하나의 Layout XML 과 하나의 Activity 를 묶 은 상황 에서 하나의 Form 으로 볼 수 있 습 니 다.여러 개의 Layout XML 과 하나의 Activity 를 묶 으 면 응용 프로그램 자체 입 니 다.Intent 는 명시 적 Intent 와 암시 적 Intent 로 나 눌 수 있 습 니 다.명시 적 Intent 는 명확 한 목표 구성 요소(앞에서 말 한 3 대 구성 요소)를 시작 하 는 데 사 용 됩 니 다.같은 Application 에 있 는 여러 개의 Activity 호출 도 명시 적 Intent 입 니 다.암시 적 Intent 는 명확 한 목표 구성 요소 가 없 으 면 시스템 일 수도 있 고 제3자 프로그램 일 수도 있 습 니 다.암시 적 Intent 는 일반적으로 시스템 구성 요소 기능 을 호출 하 는 데 사용 되 며,관련 규칙 은 네트워크 에서 쉽게 찾 을 수 있 습 니 다(일부 시스템 구성 요 소 를 호출 할 때 권한 을 신청 해 야 합 니 다).
Acitivity 의 운행 상황 은 onCreate,onDestroy,onStart,onStop,onRestart,onResume,onPause,onCreate 대응 onDestroy,onStart 대응 onStop,onResume 대응 onPause 로 나 뉜 다.
먼저 본문 실행 캡 처 를 붙 입 니 다.
이것 은 Acitivity 1 에서 Activity 2 로 넘 어 갈 때 Acitivity 1 의 상태 변화 로 finish()를 사용 하면 onDestroy()를 촉발 합 니 다.
이 는 액 티 비 티 2 에서 액 티 비 티 1 로 넘 어 갔 을 때 액 티 비 티 2 의 상태 변화 다.두 번 의 Activity 시작 을 통 해 알 수 있 듯 이 절 차 는 onCreate()->onStart()->onResume()세 가지 방법 이 고,소각 은 onPause()->onStop()->onDestroy()이다.또한 프로젝트 에 두 번 째 Activity 를 추가 하려 면 AndroidManifest.xml->Application 에 Activity 2 를 추가 해 야 합 니 다.
main1.xml 소스 코드:
XML/HTML 코드
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/main1.Button01"
android:text=" Activity2"></Button>
<EditText android:text="@+id/EditText01" android:id="@+id/EditText01"
android:layout_width="wrap_content" android:layout_height="wrap_content"></EditText>
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/main1.Button02"
android:text=" Activity"></Button>
</LinearLayout>
main 2.xml 소스 코드:XML/HTML 코드
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/main2.Button01"
android:text=" Activity1"></Button>
</LinearLayout>
Activity 1 의 원본 코드:
package com.testActivityIntent;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class testActivityIntent extends Activity {
/** Called when the activity is first created. */
Button btnToInternalActivity;
Button btnToExternalActivity;
EditText tbBundle;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.e("Activity1", "onCreate");// ,onCreate onDestroy
setContentView(R.layout.main1);
btnToInternalActivity=(Button)this.findViewById(R.id.main1_Button01);
btnToExternalActivity=(Button)this.findViewById(R.id.main1_Button02);
btnToInternalActivity.setOnClickListener(new ClickEvent());
btnToExternalActivity.setOnClickListener(new ClickEvent());
tbBundle=(EditText)this.findViewById(R.id.EditText01);
}
public void onDestroy()
{
super.onDestroy();
Log.e("Activity1", "onDestroy");// ,onCreate onDestroy
}
@Override
public void onStart()
{
super.onStart();
Log.e("Activity1", "onStart");// ,onStart onStop
}
@Override
public void onStop()
{
super.onStop();
Log.e("Activity1", "onStop");// ,onStart onStop
}
@Override
public void onRestart()
{
super.onRestart();
Log.e("Activity1", "onRestart");
}
@Override
public void onResume()
{
super.onResume();
Log.e("Activity1", "onResume");// ,onPause onResume
SharedPreferences prefs = getPreferences(0); //SharedPreferences
String restoredText = prefs.getString("editText01", null);
if (restoredText != null) {
this.tbBundle.setText(restoredText);
}
}
@Override
public void onPause()
{
super.onResume();
Log.e("Activity1", "onPause");// ,onPause onResume
// , Acitivity
SharedPreferences.Editor editor = getPreferences(0).edit();//SharedPreferences
editor.putString("editText01", this.tbBundle.getText().toString());
editor.commit();
}
class ClickEvent implements View.OnClickListener{
@Override
public void onClick(View v) {
if(v==btnToInternalActivity)
{
Intent intent = new Intent();
intent.setClass(testActivityIntent.this,Activity2.class);
//new Bundle ,
Bundle bundle = new Bundle();
bundle.putString("Text",tbBundle.getText().toString());
// Bundle assign Intent
intent.putExtras(bundle);
// Activity2
startActivity(intent);
testActivityIntent.this.finish();// onDestroy();
}
else if(v==btnToExternalActivity)
{
//
Uri uri = Uri.parse("http://google.com");
Intent it = new Intent(Intent.ACTION_VIEW, uri);
startActivity(it);
}
}
}
}
Activity 2 의 원본 코드:
package com.testActivityIntent;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class Activity2 extends Activity {
Button btnBackMain1;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Log.e("Activity2", "onCreate");// ,onCreate onDestroy
// activity2.xml
setContentView(R.layout.main2);
// Intent Bundle
Bundle bunde = this.getIntent().getExtras();
// Bundle
Log.i("In_Text", bunde.getString("Text"));
btnBackMain1=(Button)this.findViewById(R.id.main2_Button01);
btnBackMain1.setOnClickListener(new ClickEvent());
}
public void onDestroy()
{
super.onDestroy();
Log.e("Activity2", "onDestroy");// ,onCreate onDestroy
}
@Override
public void onStart()
{
super.onStart();
Log.e("Activity2", "onStart");// ,onStart onStop
}
@Override
public void onStop()
{
super.onStop();
Log.e("Activity2", "onStop");// ,onStart onStop
}
@Override
public void onRestart()
{
super.onRestart();
Log.e("Activity2", "onRestart");
}
@Override
public void onResume()
{
super.onResume();
Log.e("Activity2", "onResume");// ,onPause onResume
}
@Override
public void onPause()
{
super.onResume();
Log.e("Activity2", "onPause");// ,onPause onResume
}
class ClickEvent implements View.OnClickListener{
@Override
public void onClick(View v) {
if(v==btnBackMain1)
{
Intent intent = new Intent();
intent.setClass(Activity2.this,testActivityIntent.class);
// Activity1
startActivity(intent);
Activity2.this.finish();// onDestroy();
}
}
}
}
이상 은 바로 Android Activity 와 Intent 의 자료 정리 입 니 다.추 후 계속 보충 하 겠 습 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.