Android Activity 와 Intent 상세 설명 및 예시 코드

9994 단어 AndroidActivityIntent
Android 에는 세 개의 기본 구성 요소 인 Activity,Service,BroadcastReceiver 가 있 는데 모두 Intent 에 의존 하여 시작 합 니 다.본 고 는 Activity 의 생명주기 와 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 의 자료 정리 입 니 다.추 후 계속 보충 하 겠 습 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기