Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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();
}
}