2014-02-27 60 views
0

讓右走直奔我的問題:活動秩序問題

我有三個活動:A,B,C

  • 活動A跑第一,然後調用B(沒有完成A) 。
  • 之後,B調用活動C(沒有完成B) 標誌:Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_SINGLE_TOP。 堆棧現在喜歡A - B - C(C是頂部)。

  • from C(top now)我用標誌回電給活動B Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_SINGLE_TOP

所以現在,堆棧喜歡一個 - C - B(我說的,C是現在對於B背景)

但我想成爲B.背景(就像三張圖片,我想要圖片A是圖片B的背景一如既往)

那麼有沒有什麼方法可以隱藏活動C,或將其重新排列到堆棧底部或其他解決方案?

非常感謝!

+0

您好,我有一個解決方案,只是回調至前回B:d –

回答

0

From the Docs:

如果您的應用支持Android 4.0及更低,包括支持庫與您的應用程序,並添加里面的一個元素。然後將父活動指定爲android.support.PARENT_ACTIVITY的值,並與android:parentActivityName屬性匹配。

<application ... > 
    ... 
    <!-- The main/home activity (it has no parent activity) --> 
    <activity 
     android:name="com.example.myfirstapp.MainActivity" ...> 
     ... 
    </activity> 
    <!-- A child of the main activity --> 
    <activity 
     android:name="com.example.myfirstapp.DisplayMessageActivity" 
     android:label="@string/title_activity_display_message" 
     android:parentActivityName="com.example.myfirstapp.MainActivity" > 
     <!-- Parent activity meta-data to support 4.0 and lower --> 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.example.myfirstapp.MainActivity" /> 
    </activity> 
</application> 
+0

我嘗試這一點,但它不工作,C是B後仍然存在:( –

+0

你在測試什麼API? – Skynet

+0

我在真實設備廠商4.1.2上測試:D –

0

簡單的解決方法是將完成活動℃,同時要回活動B.

ActivityC.this.finish(); 

希望這有助於。

+0

謝謝。但我不想完成任何事情,因爲他們正在執行其他任務:D –

0

你可以嘗試這樣的:

  • A(無終點) - > B(無終點) - > C(堆棧= A - B - C)
  • C(開返回終點) - > B(堆棧= A - B)(C現在已經沒有了)
+0

謝謝。但我不想完成任何事情,因爲他們正在運行其他任務:D –

+0

運行其他任務如何?你是否在變量中存儲了任何值? –

+0

我的應用程序是從模塊構建的(每個人管理一個模塊)。這個問題是關於互相不好的互動。我是那個只是想解決這個問題的人(我是Android的新手):D –