Android:禁用或覆盖内部活动的OnBackPressed

时间:2014-03-06 15:51:57

标签: android mono xamarin.android back-button lockscreen

使用Xamarin for Android,我使用第三方组件通过PIN在我的应用上的各种活动上创建锁定屏幕。

当用户第一次登录时,系统会提示他们创建一个图钉。这会触发第三方创建引脚的活动。如果用户在该活动时点击后退按钮,则会退回到我的应用的主屏幕,并绕过引脚创建和验证。

我无权修改第三方内部活动的代码。

我也通过对组件的方法调用启动活动,而则不使用StartActivity 调用。

我需要一种方法来禁用或覆盖这些内部活动的onBackPressed事件。 有没有办法禁用整个应用程序的后退按钮,然后在用户从第三方组件返回时重新启用它?

关于如何为我没有修改权限的活动禁用OnBackPressed事件的任何想法?

PS:该组件是Xamarin锁屏。

1 个答案:

答案 0 :(得分:0)

如果你可以使用3rdy part组件活动作为你的活动的基类,或者扩展它来创建你自己的类,你就可以像这样重写OnBackPressed:

public class yourNewActivity: ThirdyPartActivityClass{

//...

public override void OnBackPressed()
    {
        if (BackEventEnabled)
             base.OnBackPressed();
     }

}

你班上的哪个地方     public bool BackEventEnabled = true; (或禁用false);

在使用组件的方法启动活动之前 你可以做到

BackEventEnabled = false;

之后

BackEventEnabled = true;

我不知道无论如何都可以帮助你或其他人,甚至可以为更好的想法或解决方法/黑客提供一个起点。我希望如此。