Saya memiliki salah satu kegiatan saya yang ingin saya hindari memutar karena saya memulai AsyncTask, dan rotasi layar membuatnya restart.
Apakah ada cara untuk mengatakan kegiatan ini "JANGAN memutar layar meskipun pengguna menggoyangkan teleponnya seperti orang gila"?
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
Jawaban:
Menambahkan
atau
ke
<activity>
elemen dalam manifes dan Anda selesai.sumber
Anda dapat mengikuti logika di bawah ini untuk mencegah layar putar otomatis saat Anda
AsyncTask
menjalankan:getRequestedOrientation()
.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR)
.AsyncTask
.AsyncTask
mengembalikan status orientasi sebelumnya menggunakansetRequestedOrientation(oldOrientation)
.Harap perhatikan bahwa ada beberapa cara untuk mengakses
Activity
(yang berjalan pada utas UI) properti di dalamAsyncTask
. Anda dapat mengimplementasikan AndaAsyncTask
sebagai kelas dalam atau Anda dapat menggunakan pesanHandler
yang menyodokActiviy
kelas Anda .sumber
Di file Manifest Anda, untuk setiap Kegiatan yang Anda ingin mengunci rotasi layar, tambahkan: jika Anda ingin menguncinya dalam mode horizontal:
atau jika Anda ingin menguncinya dalam mode vertikal:
sumber
Cara termudah yang saya temukan untuk melakukan ini adalah dengan meletakkan
dalam onCreate, setelahnya
begitu...
sumber
Daripada masuk ke AndroidManifest, Anda bisa melakukan ini:
Satu-satunya kelemahan di sini adalah ia membutuhkan API level 18 atau lebih tinggi. Jadi pada dasarnya ini adalah ujung tombak.
sumber
Activity.java
AndroidManifest.xml
sumber
Atribut berikut pada ACTIVITY di AndroidManifest.xml adalah yang Anda butuhkan:
Jadi, simpul aktivitas penuh adalah:
sumber
Menambahkan:
sumber
Tambahkan yang berikut ke AndroidManifest.xml Anda
[app> src> main> AndroidManifest.xml]
Contoh:
sumber
Jika Anda menggunakan Alat Pengembang Android (ADT) dan Eclipse, Anda dapat membuka AndroidManifest.xml -> tab Aplikasi -> turun dan pilih aktivitas Anda. Terakhir, pilih orientasi yang Anda inginkan. Anda dapat memilih salah satu dari banyak opsi.
sumber
Anda harus menambahkan kode berikut dalam file manifes.xml. Aktivitas yang tidak boleh dirotasi, dalam aktivitas itu tambahkan elemen ini
Maka itu tidak akan berputar.
sumber
Anda bisa mencoba cara ini
sumber
Gunakan AsyncTaskLoader untuk menjaga data Anda tetap aman bahkan jika aktivitas berubah, alih-alih menggunakan AsyncTask yang merupakan cara yang lebih baik untuk membangun aplikasi daripada mencegah rotasi layar.
sumber
Cegah Rotasi Layar cukup tambahkan baris berikut ini di Manifes Anda.
Ini bekerja untuk saya.
sumber
Pengguna
"portrait"
dalam file AndroidManifest.xml Anda mungkin tampak seperti solusi yang bagus. Tapi itu memaksa perangkat tertentu (yang berfungsi terbaik dalam lanskap) untuk masuk ke potret, bukan mendapatkan orientasi yang tepat. Pada versi Android terbaru, Anda akan mendapatkan kesalahan. Jadi saran saya lebih baik digunakan"nosensor"
.sumber