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>
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 startActivityForResultstartActivity 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 인 스 턴 스 에 대한 상세 한 설명 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 메 시 지 를 남 겨 주세요.편집장 은 신속하게 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Android 활동의 시작 모드이 기사에서는 예제와 함께 시작 모드에 대한 자세한 설명을 볼 것입니다. 시작 모드로 이동하기 전에 몇 가지 중요한 용어가 있습니다. 애플리케이션 실행 시 새 작업이 생성되고 실행기 활동이 작업의 루트가 됩니다. 새...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.