Reputation: 45
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()'.
Upvotes: 1
Views: 2228
Reputation: 794
There are a series of Xamarin.Android tutorials using the NavigationComponent at https://github.com/gmck. As you progress through the projects, you will see the introduction of OnBackPressedCallback which is used extensively in the later projects.
Upvotes: 0
Reputation: 9701
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
}
}
onBackPressed() deprecated, What is the alternative?
Upvotes: 1