2

在Android的導航考慮穿如何導航回到在Android的特定活動穿

在Android Wear,swipping從左至右屏幕讓你返回到以前活動。我注意到,如果一個活動有碎片並且做了這個動作,那麼無論您在活動中有多少碎片,都會返回到之前的活動。

問題

我想能夠執行以下導航,在圖中描述的:

navigation diagram

  • 我的主要活動是A;
  • 如果我在B中刷卡,我去A;
  • 如果我刷C,我 去B;
  • 如果我在d刷卡,但是,我回A.

這就是我想我的導航是,但我不能這樣做,以令人滿意的方式。

嘗試

  • 的方法之一是進入D.然而之前完成活動c右鍵,它變得有點混亂,因爲swipping之後,活動B簡要活動d之前出現(這使得因爲在完成C和開始D之間存在延遲,這使得B出現在背景中)
  • 另一個嘗試是從B和C清除活動堆棧(使用Intent中的標誌,但問題也在於,而在D版中,C會在後臺短暫出現,並且在完成swi後纔會消失顯示答:這也可能會混淆用戶,因爲他會在獲得A之前簡要地看到C.
  • 我也嘗試過使用片段,但是我意識到無論我在活動中放入多少片段,翻轉它將導致活動結束。這可以很好地從D到A,但問題是,當我在C中時,我必須能夠回到B.因此,用三個片段(B,C和D)膨脹單個活動,因爲這個細節而不能很好地工作。
  • 我也考慮過使用帶有片段的viewpager並添加邏輯來做我想做的事情,但就代碼和實現而言,我認爲它可能變得非常快,特別是如果我想在將來改變它。我將不得不以編程方式顯示頁面,並禁用滑動以在viewpager內部導航,以便不讓用戶在其中瀏覽(因爲我希望用戶僅通過在每個屏幕中按「繼續」按鈕來導航)。另外,當達到D時,我將不得不刪除B和C,以便在用戶轉移時,他會回到A.正如我所說的,代碼會非常快地變醜。

摘要

擁有所有的考慮,我要的是能夠從C到去了swipping,並且在達到d時,輕掃將返回用戶A到B,不在背景中偶然地顯示B或C.我想用戶實際感受到他從d去一個,沒有發現很奇怪的是B或C在後臺短暫地出現

回答

0

嘗試創建一個新的意圖,並清除回堆棧,這樣的:

Intent intent = new Intent(this, A.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 
finish(); // call this to finish the current activity 
+0

關於這個問題正如我所描述的那樣。用你的代碼,讓我們說我在C和我去D.當我這樣做時,C出現前消失右。所以,因爲B是C的前一個活動,所以它在D開始之前顯得很短。我想避免這種影響。如果我可以完成C後只需在D開始並出現在屏幕上,它將工作 – FabioR

+0

這個代碼應該只在D中調用,當你想回到A. –

+0

我現在有問題檢測到飛擲。我嘗試了很多方法,但是它並沒有檢測到我什麼時候掉線。當我解決這個問題時,我會告訴你是否可以工作 – FabioR