Mengekalkan Keadaan Aktiviti dalam Android dengan Simpan Keadaan Contoh

Java

Memahami Aktiviti Pemeliharaan Negeri

Menyimpan keadaan aktiviti dalam Android boleh menjadi agak membingungkan, terutamanya untuk pembangun yang baru menggunakan platform Android SDK. Contoh yang diberikan di sini menunjukkan aplikasi mudah yang menyapa pengguna secara berbeza bergantung pada sama ada ini kali pertama mereka membuka apl atau jika mereka kembali.

Walau bagaimanapun, pelaksanaan semasa sentiasa memaparkan ucapan awal, tanpa mengira navigasi keluar dari apl. Artikel ini akan membimbing anda melalui langkah-langkah yang perlu untuk menyimpan dan memulihkan keadaan aktiviti dengan betul menggunakan kaedah `onSaveInstanceState`.

Perintah Penerangan
onSaveInstanceState(Bundle outState) Kaedah ini dipanggil sebelum aktiviti dimusnahkan untuk menyimpan keadaan komponen UI.
putString(String key, String value) Menyimpan nilai rentetan ke Bundle dengan kunci yang ditentukan untuk mendapatkan semula kemudian.
getString(String key) Mendapatkan nilai rentetan daripada Himpunan menggunakan kunci yang ditentukan.
onRestoreInstanceState(Bundle savedInstanceState) Kaedah ini dipanggil selepas onStart() untuk memulihkan keadaan UI daripada Bundle yang disimpan sebelum ini.
setContentView(View view) Menetapkan kandungan aktiviti kepada paparan eksplisit, menjadikannya punca reka letak.
TextView.setText(String text) Menetapkan teks untuk dipaparkan oleh TextView.
super.onCreate(Bundle savedInstanceState) Memanggil kaedah onCreate() superclass, memulakan aktiviti.

Cara Menyimpan Keadaan Aktiviti dalam Android

Dalam skrip yang disediakan, kami meneroka cara menyimpan keadaan aktiviti menggunakan kaedah dalam pembangunan Android. Skrip pertama menunjukkan mencipta aktiviti yang memaparkan mesej ucapan, yang berubah bergantung pada sama ada ini kali pertama pengguna membuka apl atau jika mereka telah menavigasi pergi dan kembali. Bahagian kritikal skrip melibatkan menyimpan keadaan menggunakan kaedah. Apabila aktiviti hampir dimusnahkan, kaedah ini dipanggil untuk menyelamatkan keadaan komponen UI. Kami menyimpan teks yang dipaparkan dalam TextView menggunakan kaedah, yang mengaitkan nilai rentetan dengan kunci yang ditentukan dalam .

Setelah mencipta semula aktiviti itu, kaedah menyemak sama ada terdapat keadaan contoh yang disimpan. Jika ada, ia mendapatkan semula teks yang disimpan sebelum ini menggunakan kaedah dan menetapkannya kembali kepada . Ini memastikan bahawa pengguna melihat mesej yang sama yang mereka lihat sebelum menavigasi pergi. Dalam skrip kedua, kami memperhalusi lagi pendekatan ini dengan menambah onRestoreInstanceState(Bundle savedInstanceState) kaedah, yang dipanggil selepas untuk memulihkan keadaan UI daripada yang disimpan sebelum ini . Kaedah ini secara langsung menetapkan teks yang disimpan ke , memastikan keadaan UI konsisten dan dipelihara dengan lancar sepanjang aktiviti dimulakan semula.

Melaksanakan State Saving dalam Aktiviti Android

Pembangunan 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());
    }
}

Memastikan Kegigihan Data dalam Aplikasi Android

Pembangunan 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));
    }
}

Memastikan Kegigihan Negeri Merentas Perubahan Konfigurasi

Apabila membangunkan aplikasi Android, mengurus keadaan aktiviti semasa perubahan konfigurasi, seperti putaran skrin, adalah penting. Perubahan konfigurasi menyebabkan aktiviti dimusnahkan dan dicipta semula, yang membawa kepada kehilangan keadaan UI sementara jika tidak dikendalikan dengan betul. Menggunakan kaedah, pembangun boleh menyimpan maklumat keadaan UI yang diperlukan. Kaedah ini dipanggil sebelum aktiviti dimusnahkan, membenarkan pembangun menyimpan pasangan nilai kunci dalam a , memelihara negeri untuk pemulihan kemudian.

Di samping itu, adalah penting untuk memahami peranan kelas daripada Komponen Seni Bina Android. direka bentuk untuk menyimpan dan mengurus data berkaitan UI dengan cara yang mementingkan kitaran hayat, membolehkan data bertahan dalam perubahan konfigurasi. Dengan menggunakan , pembangun boleh memisahkan pengawal UI daripada data yang mereka kendalikan, menjadikan aplikasi lebih teguh dan lebih mudah diselenggara. Menggabungkan ViewModel dengan menyediakan penyelesaian yang komprehensif untuk menguruskan keadaan aktiviti dengan berkesan.

  1. Apakah tujuan ?
  2. The kaedah digunakan untuk menyimpan keadaan UI semasa sesuatu aktiviti sebelum ia dimusnahkan.
  3. Bagaimanakah saya memulihkan keadaan aktiviti?
  4. Anda boleh memulihkan keadaan aktiviti dalam kaedah dengan menyemak savedInstanceState dan mendapatkan semula nilai yang disimpan.
  5. Apakah a ?
  6. A ialah peta pasangan nilai kunci yang digunakan untuk menghantar data antara aktiviti dan menyimpan keadaan UI.
  7. Apakah peranan dalam pengurusan negeri?
  8. menyimpan data berkaitan UI dalam cara yang mementingkan kitaran hayat, mengekalkan perubahan konfigurasi.
  9. Bilakah dipanggil?
  10. dipanggil selepas apabila aktiviti itu dimulakan semula daripada keadaan yang disimpan sebelum ini.
  11. Bolehkah saya menggunakan kedua-duanya dan bersama?
  12. Ya, menggabungkan dengan menyediakan penyelesaian yang mantap untuk mengurus keadaan UI merentas perubahan konfigurasi.
  13. Apakah perubahan konfigurasi dalam Android?
  14. Perubahan konfigurasi termasuk putaran skrin, ketersediaan papan kekunci dan perubahan bahasa yang menyebabkan aktiviti dicipta semula.
  15. Bagaimana bekerja di a ?
  16. menyimpan nilai rentetan dalam a dengan kunci yang berkaitan untuk mendapatkan semula kemudian.

Menguruskan keadaan aktiviti Android dengan berkesan adalah penting untuk mengekalkan pengalaman pengguna yang lancar, terutamanya semasa perubahan konfigurasi. Dengan memanfaatkan dan kaedah, pembangun boleh memastikan bahawa data pengguna dan keadaan UI dipelihara dan dipulihkan dengan lancar. Pendekatan ini bukan sahaja meningkatkan kestabilan apl tetapi juga meningkatkan kepuasan pengguna dengan menyediakan antara muka yang konsisten dan boleh dipercayai.