Bagikan melalui


SuspendingEventHandler Delegasikan

Definisi

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.

e
SuspendingEventArgs

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.

Berlaku untuk