Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Önemli API'ler
Cihaz takılıyken arka planda basit kod çalıştırmak için MaintenanceTrigger sınıfını kullanmayı öğrenin.
Bakım tetikleyici nesnesi oluşturma
Bu örnekte, cihaz takılıyken uygulamanızı geliştirmek için arka planda çalıştırabileceğiniz basit bir kodunuz olduğu varsayılır. Bu konu, MaintenanceTriggerkonusuna odaklanır, bu da SystemTriggerile benzerdir.
Arka plan görev sınıfının nasıl yazılacağı hakkında daha fazla bilgi için İşlem içi arka plan görevi oluşturup kaydetme veya İşlem dışı arka plan görevi oluşturup kaydetme'e bakabilirsiniz.
Yeni bir MaintenanceTrigger nesnesi oluşturun. OneShot
Uyarı
FreshnessTime 15 dakikadan kısa olarak ayarlanırsa, arka plan görevi kaydedilmeye çalışıldığında bir istisna oluşur.
Bu örnek kod, saatte bir çalışan bir tetikleyici oluşturur.
uint waitIntervalMinutes = 60;
MaintenanceTrigger taskTrigger = new MaintenanceTrigger(waitIntervalMinutes, false);
uint32_t waitIntervalMinutes{ 60 };
Windows::ApplicationModel::Background::MaintenanceTrigger taskTrigger{ waitIntervalMinutes, false };
unsigned int waitIntervalMinutes = 60;
MaintenanceTrigger ^ taskTrigger = ref new MaintenanceTrigger(waitIntervalMinutes, false);
(İsteğe bağlı) Koşul ekleme
- Gerekirse, görevin çalıştırılma zamanını kontrol etmek için bir arka plan görevi durumu oluşturun. Koşul, koşul karşılanıncaya kadar arka plan görevinizin çalışmasını engeller. Daha fazla bilgi için bkz. Arka plan görevi çalıştırma koşullarını ayarlama
Bu örnekte, koşul internet mevcut olduğunda (veya mevcut hale geldiğinde) bakımın çalışması için InternetAvailable olarak ayarlanmıştır. Olası arka plan görev koşullarının listesi için bkz. SystemConditionType.
Aşağıdaki kod, bakım görevi oluşturucusunun koşulunu ekler:
SystemCondition exampleCondition = new SystemCondition(SystemConditionType.InternetAvailable);
Windows::ApplicationModel::Background::SystemCondition exampleCondition{
Windows::ApplicationModel::Background::SystemConditionType::InternetAvailable };
SystemCondition ^ exampleCondition = ref new SystemCondition(SystemConditionType::InternetAvailable);
Arka plan görevini kaydetme
- Arka plan görevi kayıt işlevinizi çağırarak arka plan görevini kaydedin. Arka plan görevlerini kaydetme hakkında daha fazla bilgi için bkz. Arka plan görevi kaydetme.
Aşağıdaki kod bakım görevini kaydeder. Unutmayın ki, entryPointbelirttiği için arka plan görevinizin uygulamanızdan ayrı bir işlemde çalıştığı varsayılır. Arka plan göreviniz uygulamanızla aynı işlemde çalışıyorsa, entryPointbelirtmezsiniz.
string entryPoint = "Tasks.ExampleBackgroundTaskClass";
string taskName = "Maintenance background task example";
BackgroundTaskRegistration task = RegisterBackgroundTask(entryPoint, taskName, taskTrigger, exampleCondition);
std::wstring entryPoint{ L"Tasks.ExampleBackgroundTaskClass" };
std::wstring taskName{ L"Maintenance background task example" };
Windows::ApplicationModel::Background::BackgroundTaskRegistration task{
RegisterBackgroundTask(entryPoint, taskName, taskTrigger, exampleCondition) };
String ^ entryPoint = "Tasks.ExampleBackgroundTaskClass";
String ^ taskName = "Maintenance background task example";
BackgroundTaskRegistration ^ task = RegisterBackgroundTask(entryPoint, taskName, taskTrigger, exampleCondition);
Uyarı
Masaüstü dışındaki tüm cihaz aileleri için cihazın belleği azsa arka plan görevleri sonlandırılabilir. Yetersiz bellek istisnası meydana gelmezse veya uygulama bunu işlemezse, arka plan görevi uyarı olmadan ve OnCanceled olayı tetiklenmeden sonlandırılır. Bu, uygulamanın ön planda kullanıcı deneyimini sağlamaya yardımcı olur. Arka plan göreviniz bu senaryoyla başa çıkabilecek şekilde tasarlanmalıdır.
Uyarı
Evrensel Windows Platformu uygulamaları, arka plan tetikleyici türlerinden herhangi birini kaydetmeden önce RequestAccessAsync çağırmalıdır.
Evrensel Windows uygulamanızın, uygulamanızda bir güncelleme yayınladıktan sonra düzgün çalışmaya devam ettiğinden emin olmak için, RemoveAccess’ü çağırmanız ve ardından uygulamanız güncellendikten sonra başlatıldığında RequestAccessAsync’ü çağırmanız gerekir. Daha fazla bilgi için bkz. Arka plan görevleri için yönergeler.
Uyarı
Arka plan görevi kayıt parametreleri kayıt sırasında doğrulanır. Kayıt parametrelerinden herhangi biri geçersizse bir hata döndürülür. Uygulamanızın arka plan görevi kaydı başarısız olduğunda bu senaryoları doğru bir şekilde işlediğinden emin olun. Aksi takdirde, uygulamanız bir görevi kaydetmeye çalışırken geçerli bir kayıt nesnesine bağlıysa, çökebilir.
İlgili konular
- Süreç içi bir arka plan görevi oluştur ve kaydet.
- İşlem dışı bir arka plan görevi oluşturma ve kaydetme
- Uygulama bildiriminde arka plan görevlerini bildirme
- İptal edilen arka plan görevi işleme
- Arka plan görevlerinin ilerleme durumunu ve tamamlanmasını izleyin
- Arka plan görevi kaydetme
- Arka plan görevleriyle sistem olaylarına yanıt ver
- Arka plan görevi çalıştırma koşullarını ayarlama
- Arka plan göreviyle canlı kutucuğu güncelle
- Zamanlayıcı kullanarak bir arka plan görevi çalıştırma
- arka plan görevleri için yönergeler
- Bir arka plan görevinde hata ayıklama
- UWP uygulamalarında askıya alma, sürdürme ve arka plan olaylarını nasıl tetiklersiniz (hata ayıklama sırasında)