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> 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> 
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);  
      }  
        
    }  
      
  }  
    
} 
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();  
      }  
        
    }  
      
  }  
} 이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.