Android: Activity trong Android


Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên

Activity trong Android được điều khiển bởi 7 phương thức của lớp android.app.Activity. Activity là lớp con của lớp ContextThemeWrapper.

Mỗi activity là một màn hình đơn trong Android. Nó giống như window hoặc frame của Java.

Nhờ sự trợ giúp của activity, bạn có thể đặt tất cả các thành phần UI hoặc widget của mình trong một màn hình.

Activity

Các phương thức vòng đời của Activtiy

Chúng ta hãy xem 7 phương pháp vòng đời của hoạt động Android.

Phương Thức Mô tả
onCreate() Được gọi khi activity được tạo lần đầu.
onStart() Được gọi khi activity đang hiển thị cho người dùng.
onResume() Được gọi khi activity bắt đầu tương tác với người dùng.
onPause() Được gọi khi activity không hiển thị cho người dùng.
onStop() Được gọi khi activity không còn hiển thị cho người dùng.
onRestart() Được gọi sau khi activity của bạn bị dừng lại, trước khi bắt đầu.
onDestroy() Được gọi trước khi activity bị hủy.

Activity trong Android

Ví dụ về Activity

Dưới đây là file activity_main.xml nằm trong thư mục res/layout/ :

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

Còn dưới đây là nội dung của file MainActivity.java nằm trong thư mục main/java/. File này các phương thức thể hiện vòng đời của Activity, trong đó phương thức Log.d() được sử dụng để hiển thị thông báo log:

package v1study.com.activity;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;

public class MainActivity extends AppCompatActivity {

    String msg="Android: ";

    /**Được gi khi activity được to ln đu*/
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.d(msg,"The onCreate() event");
    }

    /**Được gi khi activity đang hin thcho người dùng*/
    @Override
    protected void onStart(){
        super.onStart();
        Log.d(msg,"The onStart() event");
    }

    /**Được gi khi activity bt đu tương tác vi người dùng*/
    @Override
    protected void onResume(){
        super.onResume();
        Log.d(msg,"The onResume() event");
    }

    /**Được gi khi activity không hin thcho người dùng*/
    @Override
    protected void onStop(){
        super.onStop();
        Log.d(msg,"The onStop() event");
    }

    /**Được gi trước khi activity bhy*/
    @Override
    protected void onDestroy(){
        super.onDestroy();
        Log.d(msg,"The onDestroy() event");
    }
}

Một lớp Activity tải tất cả thành phần UI bằng cách sử dụng file XML có sẵn trong thư mục res/layout/ của project. Lệnh sau tải các thành phần UI từ file res/layout/activity_main.xml:

setContentView(R.layout.activity_main);

Một ứng dụng có thể có một hoặc nhiều Activity. Mỗi Activity bạn định nghĩa phải được khai báo trong file AndroidManifest.xml và activity chính của cho ứng dụng phải được khai báo trong manifest với một <intent-filter> và bao gồm action là MAIN và category là LAUNCHER, cụ thể file AndroidManifest.xml như sau:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:dist="http://schemas.android.com/apk/distribution"
    package="v1study.com.activity">

    <dist:module dist:instant="true" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Nếu hoặc MAIN hoặc LAUNCHER không được khai báo, thì biểu tượng ứng dụng sẽ không xuất hiện trong danh sách ứng dụng của màn hình Home.

Giờ bạn hãy thử chạy ứng dụng, hãy nhấn biểu tượng Run 'app' Run app button từ thanh công cụ. Android sẽ đặt ứng dụng trên AVD và bắt đầu hiển thị cửa sổ Emulator như sau:

Activity home

Và bạn sẽ thấy thông báo Logcat như sau sau:

Activity trong Android

Bạn thử nhấn nút Power trên Android Emulator:

Power trong Emulator

Và nó sẽ tạo thông báo event sau:

D/Android:: The onStop() event

Khi bạn nhấn nút Apply Changes như hình dưới thì kết quả sẽ như sau:

Apply Changes button
Kết quả khi nhấn nút Apply Changes

» Tiếp: Service trong Android
« Trước: Resource trong Android
Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên
Copied !!!