Activity trong Android


Một Activity đại diện cho một màn hình với một giao diện người dùng. VD: Một ứng dụng Email sẽ có một Activity để hiển thị tất cả các Email, một Activity khác để để soạn Email, một Activity khác để đọc Email. Nếu một ứng dụng có nhiều hơn 1 Activity thì một trong số chúng sẽ được đánh dấu là Activity hiển thị đầu tiên khi ứng dụng khởi chạy.

Nếu bạn đã từng lập trình với ngôn ngữ C, C++, Java thì bạn cũng biết rằng chương trình bắt đầu chạy từ hàm main(), theo cách tương tự thì Android cũng khởi đầu bởi 1 activity được đánh dấu là khởi đầu bằng cách gọi phương thức onCreate(). Có một chuỗi các phương thức được gọi để bắt đầu một activity và một chuỗi các phương thức khác để hủy 1 activity, như hình bên dưới:

Class Activity định nghĩa nhiều phương thức cho các sự kiện, bạn không cần phải thực thi tất cả các phương thức này, tuy nhiên việc hiểu rõ và áp dụng chúng vào ứng dụng của bạn khá quan trọng, giúp cho ứng dụng của bạn có các hành vi như mong đợi của người dùng.

  • onCreate(): Nó là phương thức đầu tiên được gọi dùng để tạo một activity vào lần đầu tiên activity được gọi.
  • onStart(): Sẽ được gọi khi nó hiện hữu với người dùng.
  • onResume(): Sẽ được gọi khi người dùng tương tác với các ứng dụng.
  • onPause(): Tạm dừng một activity, không nhận dữ liệu do người dùng nhập vào và không thế thực thi lệnh nào. Phương thức này được gọi khi activity hiện tại đang được tạm dừng, và activity trước đó đang được tiếp tục.
  • onStop(): Được gọi khi một activity đã không được nhìn thấy trong thời gian dài.
  • onDestroy(): Được gọi trước khi hệ thống hủy activity.
  • onRestart(): Được gọi khi activity cần được dùng trở lại sau khi bị gọi onStop();

Ví dụ:

Đây là ví dụ đơn giản về vòng đời của một activity.

Tạo project với name: ActivityExample

File: src/com.example.activityexample/MainActivity.java

package com.example.activityexample;

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;

public class MainActivity extends Activity {

	String msg = "Android: ";

	/**
	 * Called when the activity is first created.
	 * */
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		Log.d(msg, "The onCreate() event");
	}

	/**
	 * Called when the activity is about to become visible.
	 ***/
	@Override
	protected void onStart() {
		super.onStart();
		Log.d(msg, "The onStart() event");
	}

	/**
	 * Called when the activity has become visible.
	 */
	@Override
	protected void onResume() {
		super.onResume();
		Log.d(msg, "The onResume() event");
	}

	/**
	 * Called when another activity is taking visiable
	 */
	@Override
	protected void onPause() {
		super.onPause();
		Log.d(msg, "The onPause() event");
	}

	/**
	 * Called when the activity is no longer visible
	 */
	@Override
	protected void onStop() {
		super.onStop();
		Log.d(msg, "The onStop() event");
	}

	/**
	 * Called just before the activity is destroyed
	 */
	@Override
	protected void onDestroy() {
		super.onDestroy();
		Log.d(msg, "The onDestroy() event");
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

Khi bạn chạy chương trình lần đầu thì sẽ nhìn thấy các Log sau:

Sau đó hãy thử nhấn vào button Menu, Home, và các button khác trên AVD để xem các Log khác nhau cho các trường hơp. Trường hợp thoát ứng dụng:

 

DOWNLOAD: Source code 

 

 

Dựa trên: tutorialspoint

Leave a comment