Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Cách khai báo biến toàn cục (Global Variables) trong Android

Giới thiệu

Trong Android, có 3 cách phổ biến để chia sẻ dữ liệu toàn cục (global) giữa các Activity, Fragment, Service:

  1. Singleton Pattern (Khuyên dùng cho dữ liệu đơn giản).
  2. Application Class (Chuẩn, vòng đời dài nhất).
  3. SharedPreferences (Lưu bền vững qua lần khởi động).

Cách 1: Singleton Pattern (Ví dụ gốc)

Bước 1: Tạo dự án & Giao diện

Layout: một TextView hiển thị giá trị, click để cập nhật.

Bước 2: Class Singleton (src/singleToneClass.java)

package com.example.myapplication;

public class SingleToneClass { // Tên class viết hoa chữ cái đầu theo quy ước
    private String data;
    private static final SingleToneClass INSTANCE = new SingleToneClass();

    private SingleToneClass() {} // Constructor private

    public static SingleToneClass getInstance() {
        return INSTANCE;
    }

    public void setData(String data) {
        this.data = data;
    }

    public String getData() {
        return data;
    }
}

Bước 3: MainActivity.java

package com.example.myapplication;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    TextView actionEvent;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        actionEvent = findViewById(R.id.actionEvent);
        actionEvent.setText("Click để set giá trị");
        actionEvent.setOnClickListener(v -> {
            SingleToneClass instance = SingleToneClass.getInstance();
            instance.setData("Tutorialspoint.com");
            actionEvent.setText(instance.getData());
        });
    }
}

Cách 2: Application Class (Khuyên dùng cho app thực tế)

Tạo class kế thừa Application

package com.example.myapplication;

import android.app.Application;

public class MyApplication extends Application {
    private String globalData;

    public String getGlobalData() {
        return globalData;
    }

    public void setGlobalData(String globalData) {
        this.globalData = globalData;
    }
}

Khai báo trong AndroidManifest.xml

<application
    android:name=".MyApplication"
    ... >
    ...
</application>

Sử dụng ở đâu cũng được

MyApplication app = (MyApplication) getApplication();
app.setGlobalData("Giá trị toàn cục");
String value = app.getGlobalData();

Cách 3: SharedPreferences (Lưu bền vững)

// Ghi
SharedPreferences prefs = getSharedPreferences("MyPrefs", MODE_PRIVATE);
prefs.edit().putString("key", "value").apply();

// Đọc
String value = prefs.getString("key", "default");

So sánh

CáchĐộ bềnPhạm viPhù hợp cho
SingletonChạy appProcessDữ liệu tạm, cache, config nhẹ
Application ClassChạy appProcessDữ liệu chung, manager, repository
SharedPreferencesVĩnh viễnApp/DeviceCài đặt, token, trạng thái user

Chạy ví dụ Singleton

Nhấn Run. Màn hình hiển thị "Click để set giá trị". Nhấn vào → TextView đổi thành "Tutorialspoint.com".

Cách khai báo biến toàn cục (Global Variables) trong Android

Cách khai báo biến toàn cục (Global Variables) trong Android