Bagikan melalui


Aktifkan peluncuran ulang konten Anda dari Recall

Recall secara otomatis menyimpan cuplikan aplikasi Anda, namun pengguna tidak akan dapat memulai ulang ke konten Anda kecuali Anda memberikan UserActivity saat cuplikan diambil. Ini memungkinkan Recall untuk meluncurkan pengguna kembali ke apa yang sedang dilihat pada saat itu.

UserActivity mengacu pada sesuatu yang sedang dikerjakan pengguna dalam aplikasi Anda. Misalnya, ketika pengguna menulis dokumen, UserActivity dapat merujuk ke tempat tertentu dalam dokumen tempat pengguna meninggalkan penulisan. Saat mendengarkan aplikasi musik, UserActivity bisa jadi daftar putar yang terakhir didengarkan pengguna. Saat menggambar di kanvas, UserActivity bisa jadi pengguna terakhir kali membuat tanda. Singkatnya, UserActivity mewakili tujuan dalam aplikasi Windows tempat pengguna dapat kembali sehingga mereka dapat melanjutkan apa yang mereka lakukan.

Mendorong aktivitas pengguna

Setiap kali konten utama dalam aplikasi Anda berubah (seperti pengguna membuka email yang berbeda, membuka halaman web yang berbeda, dll), aplikasi Anda harus mencatat yang baru UserActivitySession sehingga sistem tahu konten apa yang saat ini terbuka. Recall kemudian akan mengaitkan UserActivity yang terbaru dengan cuplikan yang disimpannya, dan akan menggunakan ActivationUri dalam aktivitas untuk memungkinkan pengguna meluncurkan kembali ke konten tersebut.

Kami menyarankan agar Anda mendorong aktivitas pengguna di semua PC, bahkan yang tidak berjalan Recall.

UserActivitySession _previousSession;

private async Task OnContentChangedAsync()
{
    // Dispose of any previous session (which automatically logs the end of the interaction with that content)
    _previousSession?.Dispose();

    // Generate an identifier that uniquely maps to your new content.
    string id = "doc135.txt";

    // Create a new user activity that represents your new content
    var activity = await UserActivityChannel.GetDefault().GetOrCreateUserActivityAsync(id);

    // Populate the required properties
    activity.DisplayText = "doc135.txt";
    activity.ActivationUri = new Uri("my-app://docs/doc135.txt");

    // Save the activity
    await activity.SaveAsync();

    // And start a new session tracking the engagement with this new activity
    _previousSession = activity.CreateSession();
}

Nota

Metode GetOrCreateUserActivityAsync akan selalu mengembalikan aktivitas baru pada versi terbaru Windows. Kemampuan untuk mengakses aktivitas yang sudah disimpan sebelumnya telah dihapus, dan Windows tidak lagi menyimpan aktivitas sebelumnya dengan cara yang memungkinkan aplikasi Anda untuk mengambilnya kembali.

Opsional: Menangani peristiwa yang Diminta

Selain mengirim aktivitas, aplikasi Anda dapat memilih untuk mengimplementasikan event UserActivityRequested, yang mungkin dijalankan oleh Windows untuk memastikan memiliki aktivitas terbaru dari aplikasi Anda.

public void OnLaunched()
{
    UserActivityRequestManager.GetForCurrentView().UserActivityRequested += UserActivityRequested;
}

private async void UserActivityRequested(
    Windows.ApplicationModel.UserActivities.UserActivityRequestManager sender,
    Windows.ApplicationModel.UserActivities.UserActivityRequestedEventArgs args)
{
    // Start a deferral so you can use async code
    var deferral = args.GetDeferral();

    try
    {
        // Generate an identifier that uniquely maps to your current content.
        string id = "doc135.txt";

        // Create a user activity that represents your current content
        var activity = await UserActivityChannel.GetDefault().GetOrCreateUserActivityAsync(id);

        // Populate the required properties
        activity.DisplayText = "doc135.txt";
        activity.ActivationUri = new Uri("my-app://docs/doc135.txt");

        // And return the activity to the event handler
        args.Request.SetUserActivity(activity);
    }

    finally
    {
        // And complete the deferral
        deferral.Complete();
    }
}