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
}
}