SuspendingEventHandler Delegasikan
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mewakili metode yang akan menangani peristiwa Penangguhan .
public delegate void SuspendingEventHandler(Platform::Object ^ sender, SuspendingEventArgs ^ e);
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.Guid(591565925, 58218, 16610, 177, 57, 164, 112, 70, 2, 166, 225)]
class SuspendingEventHandler : MulticastDelegate
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.Guid(591565925, 58218, 16610, 177, 57, 164, 112, 70, 2, 166, 225)]
public delegate void SuspendingEventHandler(object sender, SuspendingEventArgs e);
Public Delegate Sub SuspendingEventHandler(sender As Object, e As SuspendingEventArgs)
Parameter
- sender
-
Object
Platform::Object
IInspectable
Objek tempat handler dilampirkan.
Data peristiwa.
- Atribut
Persyaratan Windows
Rangkaian perangkat |
Windows 10 (diperkenalkan dalam 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v1.0)
|
Contoh
Contoh kode ini menunjukkan pola penggunaan umum untuk peristiwa ini. Kode ini digunakan oleh banyak sampel XAML, misalnya sampel Input, sebagai bagian dari kode di belakang untuk file app.xaml. Jika Anda menelusuri sampel XAML, Anda dapat menemukan kode sumber untuk SuspensionManager
API kelas seperti yang dirujuk dalam kode ini.
async protected void OnSuspending(object sender, SuspendingEventArgs args)
{
SuspendingDeferral deferral = args.SuspendingOperation.GetDeferral();
await SuspensionManager.SaveAsync();
deferral.Complete();
}
Private Async Sub OnSuspending(sender As Object, args As SuspendingEventArgs)
Dim deferral As SuspendingDeferral = args.SuspendingOperation.GetDeferral
Await SuspensionManager.SaveAsync
deferral.Complete()
End Sub
Keterangan
Sistem menangguhkan aplikasi Anda setiap kali pengguna beralih ke aplikasi lain atau ke desktop, dan melanjutkan aplikasi Anda setiap kali pengguna beralih kembali ke aplikasi tersebut. Namun, sistem juga dapat menghentikan aplikasi Anda saat ditangguhkan untuk membebaskan sumber daya. Oleh karena itu, Anda harus menangani peristiwa Penangguhan untuk melakukan operasi berikut:
- Mempertahankan status sesi pengguna.
- Lepaskan kunci eksklusif pada sumber daya.
- Kurangi penggunaan memori jika memungkinkan. Misalnya, serialisasi data apa pun yang mudah direkonstruksi dalam bentuk objek setelah pengaktifan ulang.
- Simpan status aplikasi. Peristiwa Penangguhan adalah satu-satunya indikasi yang akan diterima aplikasi Anda sebelum penghentian (jika itu terjadi). Karena itu, Anda harus menyimpan status sesi yang cukup (seperti artikel saat ini yang dibaca atau posisi pemutaran film saat ini) untuk membuat ulang pengalaman yang sama persis selama aktivasi. Panduan untuk aplikasi pembuatan konten adalah menyimpan pekerjaan pengguna lebih awal dan sering tetapi juga menerapkan satu penyimpanan akhir selama Penangguhan. Menyimpan data sebelum penangguhan berguna karena penanganan aktivitas Penangguhan hanya memiliki waktu 5 detik untuk menyelesaikan operasinya.
Jika aplikasi Anda dihentikan, Anda dapat memulihkan status aplikasi dalam penimpaan metode OnLaunched . Jika aplikasi Anda dilanjutkan sebelum dihentikan, sistem akan memulihkan status aplikasi secara otomatis. Anda harus menangani peristiwa Melanjutkan hanya jika Anda perlu me-refresh konten yang ditampilkan yang mungkin telah berubah saat aplikasi ditangguhkan, seperti umpan berita atau lokasi pengguna.