4
我們正在使用Crosswalk項目在我們的Android應用程序中實現Web視圖。據我所知,Crosswalk會跟蹤應用程序是否可以返回到網站(getNavigationHistory()),如果用戶在根目錄下,它會在用戶再次按下後退按鈕時暫停活動。後退按鈕銷燬Crosswalk中的活動Android
場景的作品,因爲它應該:
- 用戶啓動應用程序,並認爲該指數
- 用戶按一個鏈接轉到另一個頁面
- 用戶進入到另一條鏈路
- 用戶按他的手機上的後退按鈕,並看到他在步驟#2上看到的頁面
- 用戶再次按下後退按鈕返回索引
- U SER按回來,現在的應用程序被暫停
繼續在以前的方案,但會破壞應用程序:
- 用戶再次啓動該應用程序(恢復它)
- 用戶按後退按鈕
- 該活動應該暫停,但會被銷燬。
所以我想知道這是標準行爲還是Crosswalk中的錯誤?
我希望應用程序每次用戶按下後退按鈕時都會暫停。
我試圖覆蓋標準背面行爲,但是這仍然破壞了第二次回壓的活動:
@Override
public void onBackPressed() {
DebugFunctions.showToast(mThis, "onBackPressed");
DebugFunctions.showLog(LOG_TAG, "onBackPressed");
DebugFunctions.showLog(LOG_TAG, "mXWalkView: " + String.valueOf(mXWalkView != null) + ", canGoBack: " + String.valueOf(mXWalkView.getNavigationHistory().canGoBack()));
if (mXWalkView != null && mXWalkView.getNavigationHistory().canGoBack()) {
DebugFunctions.showLog(LOG_TAG, "First");
mXWalkView.getNavigationHistory().navigate(XWalkNavigationHistory.Direction.BACKWARD, 1);
} else {
DebugFunctions.showLog(LOG_TAG, "Second");
moveTaskToBack(true);
}
}
另一種看法是,後退按鈕破壞,即使我已經按下了活動鏈接(Crosswalk應該註冊)在第二次啓動應用程序時。
我沒有Crosswalk的使用經驗,但按下後退按鈕時會破壞活動是標準的android行爲。引用來源:http://developer.android.com/guide/components/tasks-and-back-stack.html 當用戶按下「後退」按鈕時,當前活動從堆棧頂部彈出(活動被銷燬)並且前面的活動恢復(其UI的前一狀態被恢復)。 – 2015-03-02 08:58:57
但是,在第一次背按時,應用程序暫停,然後在第二次按下時,我甚至無法導航迴應用程序,因爲它只是完全關閉了應用程序,這不奇怪嗎? – jwanglof 2015-03-03 10:01:17
對我來說,人行橫道網絡視圖的歷史堆棧中的第一頁是「about:blank」。導航回到它創建一個空白/黑色的屏幕,看起來像視圖被摧毀。但它並不是它只是在瀏覽器中顯示的合法空白頁面。 – Twilite 2016-08-12 14:50:54