Duy trì trạng thái hoạt động trong Android bằng trạng thái lưu phiên bản

Java

Hiểu về bảo tồn trạng thái hoạt động

Việc lưu trạng thái của một hoạt động trong Android có thể hơi khó hiểu, đặc biệt đối với các nhà phát triển mới làm quen với nền tảng SDK Android. Ví dụ được cung cấp ở đây minh hoạ một ứng dụng đơn giản có cách chào đón người dùng khác nhau tùy thuộc vào việc họ mở ứng dụng lần đầu tiên hay họ quay lại.

Tuy nhiên, cách triển khai hiện tại luôn hiển thị lời chào ban đầu, bất kể điều hướng khỏi ứng dụng. Bài viết này sẽ hướng dẫn bạn các bước cần thiết để lưu và khôi phục đúng cách trạng thái của hoạt động bằng phương pháp `onSaveInstanceState`.

Yêu cầu Sự miêu tả
onSaveInstanceState(Bundle outState) Phương thức này được gọi trước khi một hoạt động bị hủy để lưu trạng thái của các thành phần giao diện người dùng.
putString(String key, String value) Lưu giá trị chuỗi vào Gói bằng khóa được chỉ định để truy xuất sau.
getString(String key) Truy xuất giá trị chuỗi từ Gói bằng khóa được chỉ định.
onRestoreInstanceState(Bundle savedInstanceState) Phương thức này được gọi sau onStart() để khôi phục trạng thái giao diện người dùng từ Gói đã lưu trước đó.
setContentView(View view) Đặt nội dung hoạt động thành chế độ xem rõ ràng, biến nó thành chế độ xem gốc của bố cục.
TextView.setText(String text) Đặt văn bản được hiển thị bởi TextView.
super.onCreate(Bundle savedInstanceState) Gọi phương thức onCreate() của siêu lớp, khởi tạo hoạt động.

Cách lưu trạng thái hoạt động trong Android

Trong các tập lệnh được cung cấp, chúng tôi khám phá cách lưu trạng thái của hoạt động bằng cách sử dụng phương pháp phát triển Android. Tập lệnh đầu tiên minh họa việc tạo một hoạt động hiển thị thông báo chào mừng, thông báo này sẽ thay đổi tùy thuộc vào việc đây là lần đầu tiên người dùng mở ứng dụng hay họ đã điều hướng đi và quay lại. Phần quan trọng của tập lệnh liên quan đến việc lưu trạng thái của sử dụng phương pháp. Khi hoạt động sắp bị hủy, phương thức này được gọi để lưu trạng thái của các thành phần UI. Chúng tôi lưu trữ văn bản được hiển thị trong TextView sử dụng phương thức liên kết một giá trị chuỗi với một khóa được chỉ định trong .

Khi tạo lại hoạt động, phương thức kiểm tra xem có trạng thái phiên bản đã lưu hay không. Nếu có, nó sẽ truy xuất văn bản đã lưu trước đó bằng cách sử dụng phương thức và đặt nó trở lại . Điều này đảm bảo rằng người dùng nhìn thấy cùng một thông báo mà họ đã thấy trước khi điều hướng đi. Trong tập lệnh thứ hai, chúng tôi tinh chỉnh thêm phương pháp này bằng cách thêm onRestoreInstanceState(Bundle savedInstanceState) phương thức được gọi sau để khôi phục trạng thái giao diện người dùng từ trạng thái đã lưu trước đó . Phương pháp này trực tiếp đặt văn bản đã lưu vào , đảm bảo rằng trạng thái giao diện người dùng nhất quán và được duy trì liền mạch trong suốt quá trình khởi động lại hoạt động.

Thực hiện tiết kiệm nhà nước trong các hoạt động Android

Phát triển Android Java

package com.android.hello;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloAndroid extends Activity {
    private TextView mTextView = null;
    private static final String TEXT_VIEW_KEY = "textViewKey";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mTextView = new TextView(this);

        if (savedInstanceState == null) {
            mTextView.setText("Welcome to HelloAndroid!");
        } else {
            mTextView.setText(savedInstanceState.getString(TEXT_VIEW_KEY));
        }
        setContentView(mTextView);
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putString(TEXT_VIEW_KEY, mTextView.getText().toString());
    }
}

Đảm bảo tính bền vững của dữ liệu trong ứng dụng Android

Phát triển Android Java

package com.android.hello;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloAndroid extends Activity {
    private TextView mTextView = null;
    private static final String TEXT_VIEW_STATE = "textViewState";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mTextView = new TextView(this);

        if (savedInstanceState != null) {
            mTextView.setText(savedInstanceState.getString(TEXT_VIEW_STATE));
        } else {
            mTextView.setText("Welcome to HelloAndroid!");
        }
        setContentView(mTextView);
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putString(TEXT_VIEW_STATE, mTextView.getText().toString());
    }

    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        mTextView.setText(savedInstanceState.getString(TEXT_VIEW_STATE));
    }
}

Đảm bảo tính bền vững của trạng thái qua các thay đổi cấu hình

Khi phát triển ứng dụng Android, việc quản lý trạng thái hoạt động trong quá trình thay đổi cấu hình, chẳng hạn như xoay màn hình, là rất quan trọng. Thay đổi cấu hình khiến các hoạt động bị hủy và được tạo lại, dẫn đến mất trạng thái UI tạm thời nếu không được xử lý đúng cách. Sử dụng phương pháp này, nhà phát triển có thể lưu thông tin trạng thái giao diện người dùng cần thiết. Phương thức này được gọi trước khi hoạt động bị hủy, cho phép các nhà phát triển lưu trữ các cặp khóa-giá trị trong một , bảo toàn trạng thái để phục hồi sau này.

Ngoài ra, cần hiểu rõ vai trò của lớp từ Thành phần kiến ​​trúc của Android. được thiết kế để lưu trữ và quản lý dữ liệu liên quan đến giao diện người dùng theo cách có ý thức về vòng đời, cho phép dữ liệu tồn tại khi thay đổi cấu hình. Bằng cách sử dụng , nhà phát triển có thể tách bộ điều khiển giao diện người dùng khỏi dữ liệu mà họ xử lý, giúp ứng dụng trở nên mạnh mẽ hơn và dễ bảo trì hơn. kết hợp ViewModel với cung cấp một giải pháp toàn diện để quản lý trạng thái hoạt động một cách hiệu quả.

  1. Mục đích của là gì ?
  2. Các phương thức được sử dụng để lưu trạng thái giao diện người dùng hiện tại của một hoạt động trước khi nó bị hủy.
  3. Làm cách nào để khôi phục trạng thái hoạt động?
  4. Bạn có thể khôi phục trạng thái hoạt động trong phương pháp bằng cách kiểm tra saveInstanceState và truy xuất các giá trị được lưu trữ.
  5. một là gì ?
  6. MỘT là bản đồ gồm các cặp khóa-giá trị được sử dụng để truyền dữ liệu giữa các hoạt động và lưu trạng thái giao diện người dùng.
  7. Vai trò của là gì trong quản lý nhà nước?
  8. lưu trữ dữ liệu liên quan đến giao diện người dùng theo cách có ý thức về vòng đời, duy trì các thay đổi về cấu hình.
  9. Khi nào gọi điện?
  10. được gọi theo sau khi hoạt động đang được khởi tạo lại từ trạng thái đã lưu trước đó.
  11. Tôi có thể sử dụng cả hai được không? Và cùng nhau?
  12. Có, kết hợp với cung cấp giải pháp mạnh mẽ để quản lý trạng thái giao diện người dùng khi thay đổi cấu hình.
  13. Thay đổi cấu hình trong Android là gì?
  14. Các thay đổi về cấu hình bao gồm xoay màn hình, tính khả dụng của bàn phím và thay đổi ngôn ngữ khiến hoạt động được tạo lại.
  15. Làm thế nào làm việc trong một ?
  16. lưu trữ một giá trị chuỗi trong một với một khóa liên quan để truy xuất sau này.

Quản lý hiệu quả trạng thái của hoạt động Android là điều cần thiết để duy trì trải nghiệm người dùng mượt mà, đặc biệt là trong quá trình thay đổi cấu hình. Bằng cách tận dụng Và phương pháp này, nhà phát triển có thể đảm bảo rằng dữ liệu người dùng và trạng thái giao diện người dùng được bảo toàn và khôi phục liền mạch. Cách tiếp cận này không chỉ nâng cao tính ổn định của ứng dụng mà còn cải thiện sự hài lòng của người dùng bằng cách cung cấp giao diện nhất quán và đáng tin cậy.