Xamarin.Forms Uygulamayı Arka Plan’a Gönderme

Merhaba,

Bazı durumlarda uygulamalarımızı kapatmadan arka plana göndermek isteyebiliriz. Bu gibi durumlarda, Xamarin %100 Native platformların özelliklerini desteklediği için problemsiz bir şekilde bu isteğimizi gerçekleştirebiliyoruz.

Platform özelinde işlemler yapacağımız için DependencyService kullanacağız.

 public interface ISendToBackground
 {
   void Sleep();
 }

DependencyService Android

[assembly: Dependency(typeof(SendToBackground))]
namespace SendAppToBackground.Droid
{
 public class SendToBackground : Activity, ISendToBackground
 {
   public void Sleep()
   {
     var mainActivity = Forms.Context as MainActivity;
     if (mainActivity != null)
       mainActivity.MoveTaskToBack(true);
   }
  }
}

DependencyService classına Activity extend edilmesi gerekiyor, çünkü MoveTaskToBack bir Activity metodu.

Kullanımı;

private void Btn_Clicked(object sender, EventArgs e)
{
  DependencyService.Get<ISendToBackground>().Sleep();
}

Traditional Android kullanıyorsanız, istediğiniz bir Activity içerisinde MoveTaskToBack metodunu kullanmanız yeterli olacaktır.

Kaynaklar;
https://developer.android.com/reference/android/app/Activity.html#moveTaskToBack(boolean)
https://developer.xamarin.com/api/member/Android.App.Activity.MoveTaskToBack/p/System.Boolean/
Yiğit

Xamarin Developer, Consultant & Architect. Community Leader and Director of Xamarin Türkiye

Post A Reply