한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Buku Putih Lag Game › L2 OS dan perangkat klien

Aplikasi mobile masuk ke latar belakang App suspended in background

ID penyebab co-mobile-bg · Penanggung jawab utama Pengembangan klien (Tim Pengembang Game) · Turut terlibat Pengembangan server (Tim Pengembang Game)

Buka kartu interaktif dengan gambar dan simulasi →

Jika Anda keluar sebentar dari game untuk melihat notifikasi, OS menangguhkan aplikasi (suspend) beberapa detik kemudian, dan selama itu server memutus koneksi Anda.

Mengapa Keluar sebentar dari game untuk membaca pesan atau menerima telepon → Akibatnya Engine game menghentikan jalannya game, dan OS pun segera menghentikan aplikasi dan jaringannya → Di layar Saat kembali, sudah disconnect dan harus reconnect

Gejala
Disconnect
Faktor
Stall, Packet loss
Siapa yang mengalami
Hanya saya
Kapan
Setelah lama diam, Saat melakukan aksi tertentu
Penanggung jawab
Penanggung jawab utama Pengembangan klien (Tim Pengembang Game) · Turut terlibat Pengembangan server (Tim Pengembang Game)
Tugas Tim Pengembang Game
Klien: saat kembali, jangan menunggu koneksi yang sudah putus, langsung reconnect otomatis dengan token sesi (melanjutkan sesi tanpa login ulang), terima state terbaru sekaligus untuk menyamakan. Server: jika heartbeat terputus, bersihkan koneksinya tetapi pertahankan sesi karakter selama masa tenggang singkat (jangan langsung dikeluarkan), lanjutkan sesi dengan token sesi jika pemain reconnect dalam waktu itu.
Kisaran angka
Engine game biasanya berhenti begitu aplikasi keluar dari layar. iOS menangguhkan aplikasi dalam beberapa detik, atau umumnya dalam puluhan detik jika mendapat waktu tambahan; Android 14 ke atas membekukan (freeze) aplikasi yang keluar dari layar sekitar 10 detik kemudian.
Di grafik
Koneksi putus serentak · Jumlah disconnect (timeout heartbeat), catatan aplikasi ditangguhkan
Yang diperiksa
Cocokkan waktu aplikasi ditangguhkan dan kembali di log klien (OnApplicationPause di Unity) dengan alasan dan waktu disconnect di server lewat ID sesi. Di Android, periksa juga alasan penutupan proses yang tercatat di ApplicationExitInfo (REASON_LOW_MEMORY dan sebagainya)
Cocok jika
Klien masuk ke status ditangguhkan tepat sebelum server mencatat disconnect karena timeout heartbeat, lalu reconnect tepat setelah kembali
Tidak cocok jika
Terputus saat aplikasi tetap tampil di depan: lebih mungkin “Mapping NAT kedaluwarsa”, “IP bersama dari ISP (CGNAT)”, atau “Perpindahan Wi-Fi ↔ LTE/5G”
Sarana pemeriksaan
Log dan metrik server atau klien game
Pelajari lebih lanjut
Jika memori kurang, ponsel kadang menutup sepenuhnya game yang sedang di latar belakang. Inilah alasan game mulai lagi dari awal setelah Anda membuka kamera atau aplikasi pembayaran dan autentikasi. Makin rendah spesifikasi perangkat, makin sering terjadi.

Sumber

  1. Extending your app’s background execution time Apple
    Saat masuk ke latar belakang, applicationDidEnterBackground diberi waktu 5 detik lalu aplikasi segera ditangguhkan; jika butuh lebih, minta waktu dengan beginBackgroundTask (sisa waktunya di backgroundTimeRemaining)
  2. Cached apps freezer Android (Google)
    Android 14 ke atas membekukan proses aplikasi yang sudah berstatus cached setelah 10 detik; saat dibekukan, semua thread berhenti
  3. Application.runInBackground Unity
    Default false sehingga game berhenti di latar belakang; Android selalu berhenti di latar belakang apa pun pengaturannya, dan iOS mengabaikan pengaturan ini
  4. MonoBehaviour.OnApplicationPause(bool) Unity
    Saat aplikasi ditangguhkan atau berjalan lagi, OnApplicationPause(true/false) dikirim ke semua MonoBehaviour
  5. ApplicationExitInfo Android (Google)
    REASON_LOW_MEMORY: low memory killer sistem menutup proses aplikasi (perangkat yang tidak mendukungnya melaporkannya sebagai REASON_SIGNALED dengan SIGKILL)

Lihat juga

Lapisan yang sama: L2 OS dan perangkat klien

Penyebab di lapisan lain dengan gejala yang sama (Disconnect)

Lihat kartu interaktif dengan gambar dan simulasi