我有一個Xamarin Android應用程序,它有兩個活動。首先是登錄活動(LoginActivity
),當登錄成功時,它會調用StartActivity
(MainActivity
)。我嘗試阻止MainActivity返回到LoginActivity
,當後退按鈕被按下並試圖覆蓋OnBackPressed()
但是此方法從未在MainActivity
上觸發。我有覆蓋在LoginActivity
完全觸發相同的方法。Xamarin活動OnBackPressed()不開火
public override void OnBackPressed()
{
// Do nothing
string test = ""; // Setting a breakpoint here and it's never hit.
}
我也試着重寫OnKeyDown()
也從來沒有在MainActivity
觸發。
public override bool OnKeyDown(Keycode keyCode, KeyEvent e)
{
if (keyCode == Keycode.Home)
{
return false;
}
return base.OnKeyDown(keyCode, e);
}
我可以看到,被解僱時,我按下MainActivity
後退按鈕的唯一方法是OnPause()
。
有什麼特別的,我從MainActivity
丟失,讓我覆蓋OnBackPressed()
?
提前感謝您的時間。
謝謝保羅。 MainActivity上有什麼要求可以使用?我向LoginActivity添加了NoHistory屬性,但是當我按下後退按鈕時,它仍將導航返回到LoginActivity。 – JMG
@JMG我已經更新了我的答案,向您展示了兩個活動代碼,並且添加了我在GitHub上嘗試的示例,隨時檢查這一切。 –
再次感謝保羅。這在我的Galaxy S6 Edge上正常工作,但是在失敗的棒棒糖(5.1)設備上。在5.1上,按回來關閉示例應用程序中的應用程序。也許5.1應該有一些不兼容或者bug。 – JMG