Home > Blockchain >  Xamarin.Android predictive back gesture (OnBackPressed deprecated)
Xamarin.Android predictive back gesture (OnBackPressed deprecated)

Time:10-15

In Android 13 the OnBackPressed method has become deprecated. How can i implement this code in Xamarin.Android?

@Override
void onCreate() {
  if (BuildCompat.isAtLeastT()) {
    getOnBackInvokedDispatcher().registerOnBackInvokedCallback(
        OnBackInvokedDispatcher.PRIORITY_DEFAULT,
        () -> {
          /**
          * Code here
          */
        }
    );
  }
}

The code above is the Java example from the official android dev website, but i can't find the replacements for this in Xamarin. Can someone translate this to C#?

This is what Visual studio suggests, but it doesn't help at all.

Warning CS0672:Member 'MainActivity.OnBackPressed()' overrides obsolete member 'Activity.OnBackPressed()'. Add the Obsolete attribute to 'MainActivity.OnBackPressed()'.    

CodePudding user response:

You can try to use OnBackPressedDispatcher.AddCallback()

MainAcivity.cs

    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        if (BuildCompat.IsAtLeastT)
        {
        OnBackPressedDispatcher.AddCallback(new CustomOnBackPressed(true));
        }

CustomOnBackPressed.cs

public class CustomOnBackPressed : OnBackPressedCallback
{
    public OnBack(bool enabled) : base(enabled)
    {
    }

    public override void HandleOnBackPressed()
    {
        //code that handles back button pressed
    }
}

Related question

onBackPressed() deprecated, What is the alternative?

  • Related