Activity 설정,시작,닫 기 activity 실례 상세 설명

여러분 먼저 효과 도 를 보 세 요.

Android 는 Activity,Service,Broadcast receivers,Content providers 등 네 가지 구성 요 소 를 제공 합 니 다.이러한 구성 은 바로 우리 가 Android 응용 프로그램 을 개발 하 는 초석 입 니 다.시스템 은 서로 다른 구성 을 통 해 제 공 된 착안점 을 통 해 개발 한 응용 프로그램 에 들 어 갈 수 있다.사용자 에 게 모든 구성 이 실제 적 인 착안점 은 아니 지만 그들 은 서로 의존 합 니 다.그들 은 존재 하 는 실체 로 서 특정한 역할 을 하고 유일한 초석 으로 개발 자 들 이 안 드 로 이 드 응용 행 위 를 정의 하도록 도와 줍 니 다.다음은 제 Activity 학습 포 인 트 를 정리 하 겠 습 니 다.
Acitvity 는 화면 에 표 시 된 사용자 인 터 랙 션 인터페이스 로 서 이메일 애플 리 케 이 션 에서 수신 목록 을 표시 하 는 Activity,메 일 을 쓰 는 Activity,메 일 내용 을 읽 는 Activity 등 이다.Activity 는 사용자 체험 을 제공 하 는 데 사용 되 는데 다양한 체험 을 하 는 Activity 가 한데 모이 면 하나의 Android 응용 프로그램의 사용자 체험 을 형성 할 수 있 고 모든 Activity 는 서로 독립 적 이다.앱 은 자신의 액 티 비 티 뿐 아니 라 다른 앱 의 액 티 비 티 에 도 접근 할 수 있다(앱 이 허용 해 야 함).
1.어떻게 Activity 를 만 듭 니까?
Activity 의 하위 클래스 를 만들어 야 합 니 다.하위 클래스 에서 Activity 상태 가 라 이 프 사이클 에서 전환 할 때 시스템 리 셋 함수(onCreate,onStart,onResume,onPause,onStop,onDestroy)를 실현 해 야 합 니 다.물론 모든 함수 가 다시 실현 되 어야 하 는 것 은 아 닙 니 다.그 중 두 가지 중요 한 함 수 는 onCreate 와
onPause:
onCreate(),이 방법 은 다시 써 야 합 니 다.시스템 이 이 방법 을 호출 하여 activity 를 만 듭 니 다.이 방법 을 실현 하 는 것 은 당신 이 만 든 Activity 를 초기 화 하 는 중요 한 절차 입 니 다.그 중에서 가장 중요 한 것 은 setContentView()를 호출 하여 보 여줄 사용자 인터페이스의 레이아웃 을 정의 하 는 것 입 니 다.
onPause(),시스템 작업 사용자 가 이 화면 을 떠 날 때 이 방법 을 사용 합 니 다.이 때 는 Activity 를 없 애 는 것 이 아 닙 니 다.일반적으로 여기에서 사용자 세 션 을 뛰 어 넘 는 변 화 를 처리 해 야 한다.예 를 들 어 데이터 저장 이다.
원활 한 사용자 체험 과 처 리 를 위해 서 는 다른 리 셋 함 수 를 사용 하여 Atctivity 를 정지 하거나 소각 할 수 있 습 니 다.onStop()방법 에서 일반적으로 큰 자원 화물 대상 의 방출 을 한다.예 를 들 어 네트워크 나 데이터 베이스 연결 이다.onResume 에서 필요 한 자원 을 다시 불 러 올 수 있 습 니 다.
2 활동 만 들 기

public class MainActivity extends Activity { 
//        
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main);//activity    
} 
}
2.Activity 생 성 이 완료 되면 시스템 에 접근 할 수 있 도록 Android Manifest.xml 파일 에 등록 해 야 합 니 다.

<activity 
android:name="com.zy.demo.activity.MainActivity" 
android:label="@string/app_name" > 
<intent-filter> 
<action android:name="android.intent.action.MAIN" /> 
<category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter> 
</activity>
는 개발 자가 서로 다른 특색 을 가 진 Activity,예 를 들 어 lable,icon 또는 theme,style 등 을 정의 할 수 있 는 속성 이 많 습 니 다.그 중에서 안 드 로 이 드:name 은 필수 속성 입 니 다.activity 의 이름 을 정의 하 는 데 사 용 됩 니 다.발표 후 변경 할 수 없습니다.
는 각종 intent-filter 를 제공 합 니 다.를 사용 하여 다른 응용 구성 요소 가 Activity 를 어떻게 활성화(시작)하 는 지 설명 합 니 다.두 가지 요 소 를 포함 하고 있 습 니 다.예 를 들 어은 이 Activity 가 android.intent.action.MAIN(응용 프로그램의 주요 입구 임 을 나타 내 는 것)에 응답 해 야 한 다 는 것 을 나타 낸다.는 Activity 가 LAUNCHER 클래스 임 을 나타 낸다.즉,응용 프로그램 이 Launcher 에 열거 되 어 사용자 가 직접 시작 할 수 있 도록 한다.이상 도 메 인 activity 에 필요 한 성명 방법 입 니 다.하나의 MAIN action 과 하나의 LAUNCHER category 입 니 다.Activity 가 다른 응용 프로그램의 암시 적 인 intent 에 응답 하려 면 Activity 성명 에 대응 하 는 action 이 필요 하고 categor 와 data 를 추가 할 수 있 습 니 다.
3.Activity 의 시작
3.1 startActivity
startActivity(intent)를 호출 하여 Activity 를 시작 합 니 다.intent 는 시작 할 Activity 를 정확하게 설명 하거나 진행 할 action 을 사용 합 니 다.intent 는 작은 데 이 터 를 가지 고 시작 되 는 Acitivity 에 사용 할 수 있 습 니 다.
같은 응용 프로그램 에서 다른 Activity 를 간단하게 시작 해 야 할 때 intent 는 Activity 류 를 시작 하 겠 다 고 명확 하 게 정의 하면 됩 니 다.

//    intent,      activity:ToStartActivity 
Intent intent = new Intent(MainActivity.this,ToStartActivity.class); 
//  startActivity(),  activity 
startActivity(intent); 
애플 리 케 이 션 이 Activity 가 실행 할 수 없 는 행동 을 수행 해 야 할 때 저 희 는 핸드폰 에 있 는 다른 애플 리 케 이 션 의 Activity 를 사용 하여 실행 을 대체 할 수 있 습 니 다.예 를 들 어 메 일 을 보 내 거나 그림 을 보 거나 단 어 를 검색 하 는 등 이다.이것 은 바로 Intent 의 중요 한 지적 입 니 다.intent 가 원 하 는 행동 을 설명 할 수 있 습 니 다.시스템 에 보 내 면 시스템 이 적당 한 Acitivty 를 시작 하여 실행 할 수 있 습 니 다.여러 응용 프로그램 인 Activity 가 이 행 위 를 처리 할 수 있 을 때 시스템 은 사용자 에 게 하 나 를 선택 하 게 합 니 다.이 Activity 가 실 행 된 후에 원래 의 Activity 는

//    google     
Intent intent = new Intent(Intent.ACTION_WEB_SEARCH); 
intent.putExtra(SearchManager.QUERY, "zy"); 
startActivity(intent); 
크로스 응용 프로그램 이 Activity 를 시작 할 때 intent 를 정의 할 때 구체 적 인 acitty 를 지정 해 야 합 니 다.전 제 는 이 activity 가 자신의 응용 프로그램 에 노출 되 어야 한 다 는 것 입 니 다(android:exported="true").

Intent intent = new Intent(); 
//            ,    
ComponentName cn = new ComponentName("com.android.settings", 
"com.android.settings.RunningServices"); 
intent.setComponent(cn); 
//   context.startActivity()          
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent);
3.2 startActivityForResult
startActivity ForResult(intent)를 호출 하여 시 작 된 Acitivity 피드백 결 과 를 받 습 니 다.다음 에 시 작 된 Activity 결 과 를 받 기 위해 서 는 onActivity Result()라 는 반전 함 수 를 다시 써 야 합 니 다.호출 된 activity 가 완료 되면 결 과 를 포함 하 는 intent 를 onActivity Result()에 되 돌려 줍 니 다.예 를 들 어 응용 프로그램의 Activity 에서 사용자 가 연락처 중 하 나 를 선택해 야 하고 Activity 는 연락처 의 일부 정 보 를 받 아야 합 니 다.

Intent intent = new Intent(Intent.ACTION_PICK, 
Contacts.People.CONTENT_URI); 
//                activity 
startActivityForResult(intent, PICK_CONTACT_REQUEST); 
   PICK_CONTACT_REQUEST     int         。
//  onActivityResult()             
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
//     requestCode  ,        resultCode     PICK_CONTACT_REQUEST 
if (resultCode == Activity.RESULT_OK 
&& requestCode == PICK_CONTACT_REQUEST) { 
//   Intent     ,                 
Cursor cursor = getContentResolver().query(data.getData(), 
new String[] { Contacts.People.NAME }, null, null, null); 
if (cursor.moveToFirst()) { //   cursor   ,           
int columnIndex = cursor.getColumnIndex(Contacts.People.NAME); 
String name = cursor.getString(columnIndex); 
//       
} 
} 
}
여기 서 는 onActivity Result()를 사용 하여 결 과 를 되 돌려 주 는 것 을 설명 하려 면 먼저 요청 이 성 공 했 는 지,그리고 결과 가 되 돌 아 왔 는 지,결과 가 startActivity ForResult()에서 필요 한 것 인지,만족 하면 Intent 를 통 해 되 돌아 오 는 수 거 를 처리 해 야 합 니 다.
4.활동 닫 기
1 Activity 는 finish()방법 으로 자신 을 닫 을 수도 있 고 finish Activity()를 호출 하 는 방법 으로 독립 되 기 전에 시작 한 Activity 를 닫 을 수도 있 습 니 다.
2 finishActivity()를 호출 하 는 방법 으로 독립 되 기 전에 시작 한 Activity 를 닫 습 니 다.

//         startActivityForResult(requestCode)   Activity 
this.finishActivity(requestCode); 
Activity 를 언제 닫 을 지 에 대해 서 는 시스템 에서 직접 관리 합 니 다.그러나 사용자 가 이 Activity 로 돌아 가지 않 아 도 된다 는 것 을 확인 할 때 저 희 는 상기 방법 으로 해당 하 는 Activity 를 닫 습 니 다.
5 데모 코드:

package mm.shandong.com.testusea;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
public class TestUseAActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_use_a);
}
//     activity
public void startFirstActivity(View view) {
Intent intent = new Intent(this, TestUseAActivity2.class);
startActivity(intent);
}
//     activity
public void startSecondActivity(View view) {
Intent intent = new Intent(this, TestUseAActivity3.class);
startActivity(intent);
}
//     activity,  activity 4      
public void startThirdActivity(View view) {
Intent intent = new Intent(this, TestUseAActivity4.class);
startActivityForResult(intent, 1);
new Thread() {
@Override
public void run() {
try {
Thread.sleep(4000);
finishActivity(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}.start();
}
}
위 에서 말 한 것 은 편집장 이 소개 한 Activity 설정,시작 과 닫 기 activity 인 스 턴 스 에 대한 상세 한 설명 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 메 시 지 를 남 겨 주세요.편집장 은 신속하게 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기