Menggunakan Kelas Aplikasi
Bergantung pada apa yang Anda lakukan dalam inisialisasi Anda, Anda dapat mempertimbangkan membuat kelas baru yang memperluas Application
dan memindahkan kode inisialisasi Anda ke onCreate
metode yang ditimpa dalam kelas itu.
public class MyApplicationClass extends Application {
@Override
public void onCreate() {
super.onCreate();
// TODO Put your application initialization code here.
}
}
The onCreate
di kelas aplikasi hanya disebut ketika seluruh aplikasi yang dibuat, sehingga Aktivitas restart pada orientasi atau keyboard perubahan visibilitas tidak akan memicu itu.
Adalah praktik yang baik untuk mengekspos instance kelas ini sebagai singleton dan mengekspos variabel aplikasi yang Anda inisialisasi menggunakan getter dan setter.
CATATAN: Anda harus menentukan nama kelas Aplikasi baru Anda di manifes agar dapat didaftarkan dan digunakan:
<application
android:name="com.you.yourapp.MyApplicationClass"
Bereaksi terhadap Perubahan Konfigurasi [UPDATE: ini sudah ditinggalkan sejak API 13; lihat alternatif yang direkomendasikan ]
Sebagai alternatif lebih lanjut, Anda dapat membuat aplikasi Anda mendengarkan acara yang akan menyebabkan perubahan orientasi dan visibilitas keyboard dimulai ulang - dan menanganinya dalam Kegiatan Anda.
Mulailah dengan menambahkan android:configChanges
simpul ke simpul manifes Kegiatan Anda
<activity android:name=".MyActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name">
atau untuk Android 3.2 (API level 13) dan yang lebih baru :
<activity android:name=".MyActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:label="@string/app_name">
Kemudian di dalam Activity, ganti onConfigurationChanged
metode tersebut dan panggil setContentView
untuk memaksa tata letak GUI agar dilakukan kembali dalam orientasi baru.
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setContentView(R.layout.myLayout);
}