Windows 10 UWP uygulamasının kendini kapatıp tekrar başlatması (Restart)

Birçok uygulama için kendini kapatıp tekrar başlatma (özellikle de değiştirilen bir ayarı veya lisansı güncelleyerek başlatma) sıklıkla ihtiyaç duyulan bir özelliktir.

Windows 10 UWP uygulamalarını kapatmak için Windows.ApplicationModel.Core namespace’inde yeralan CoreApplication sınıfının Exit() methodunu çağırmamız yeterli.

Fakat uygulamanın tekrar başlatılmasını kullanıcıdan beklemek zorunda kalıyoruz. Daha iyi bir kullanım deneyimi için aslında uygulamanın kendisini kapatıp tekrar başlatabilmesi lazım.

Windows 10 UWP projelerinde, uygulamanın kendini kapatıp tekrar başlatabilmesini sağlamak, aslında çok kolay.

Önemli not : Bu özelliğin çalışması için bilgisayarda Windows 10 Build 16226 veya sonrası kurulu olmalı

Hemen yeni bir Visual Studio açalım ve Windows 10 UWP projesi oluşturalım, ben bu makalede projeme RestartProject ismini verdim.

Öncelikle MainPage.xaml dosyasını açalım ve aşağıdaki şekilde güncelleyelim;

Şimdi MainPage.xaml.cs dosyasını açalım ve aşağıdaki kodları yazalım;

Bu seçim ile yeniden başlat butonuna tıklandığı zaman, CoreApplication sınıfında yeralan RequestRestartAsync() methodunu çağırıyoruz.

RequestRestartAsync() methodu parametre alabiliyor ve bu parametreyi, uygulama baştan başlatıldığı zaman App.xaml.cs dosyasında yeralan OnActivated() methoduna gönderiyor.

Projede yeralan App.xaml.cs dosyasını açalım ve aşağıdaki kodları yazalım;

Böylece ekrandaki listeden seçili olan öğreyi uygulama kapanıp tekrar açılırken parametre olarak kullanıyoruz. Uygulama tekrar başladığı zaman seçili olan öğe seçili olarak başlatılıyor.

Örnek kullanım alanları;

  • Tema seçimi
  • Yeni versiyon güncellemesi
  • Ayar değişikliği
  • vs

Bu makale How to Restart your App Programmatically makalesi baz alınarak yazılmıştır :)

İlgili diğer makaleler

blog comments powered by Disqus

Engin Polat hakkında

Senior Software Engineer, @Microsoft

Ada ve Ege'nin babası ;)

Kategoriler

İstatistik

Makale Adedi: 484

Creative Commons Lisansı