2012-05-15 92 views
2

我是Android新手,我的應用程序中共有6-7項活動。我想知道如何正確地管理我的活動意味着當我移動到A-> B-> C-> D時。那麼我怎樣才能移動這些活動的堆棧而不是創建。我如何管理我的活動並正確完成活動?

從一個活動移動到另一個我使用下面的代碼:

Intent intent=new Intent(current.this,next.class); 
       startActivityForResult(intent, 0); 

現在,如果我想搬回對我使用的代碼作爲較早活動:

Intent start = new Intent(current.this,next.class); 
        startActivity(start); 
        finishActivity(0); 

回答

3

是否有你不希望使用活性的特殊原因讓這些活動處理自己?

Android系統在活動生命週期中做了很好的工作。它允許您從不同地點開始活動,而不會讓用戶感到困惑,因爲後退按鈕會將用戶帶回不同的活動。

如果您沒有很好的理由不使用Android指南,請嘗試堅持系統執行的方式。其他的事情只會給你帶來問題。

你正在開始活動的結果,但我怎麼理解你,你永遠不會回到他們。

您可以開始一個活動,然後才完成當前活動。這樣的活動不會被放在後面的堆棧上。現在,您需要聽取後退按鈕並創建要讓用戶參與的活動。

如果你想你應用程式來執行以下操作,從活動一招d喜歡去啓動/主屏幕:

Intent goBackToA = new Intent(context, StdActivity.class); 
    goBackToA.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(goBackToA); 

標誌FLAG_ACTIVITY_CLEAR_TOP會告訴系統,如果堆棧中包含將顯示此活動的實例,並將當前活動與目標活動之間的所有活動從堆棧中移除。這允許您返回到家庭活動而不創建用戶可以通過後退按鈕移動的巨大循環。

+0

的情況下,我必須從活動D-> A,然後在那種情況下我該怎麼做。也請告訴我從一種活動轉移到另一種活動的標準方式。我想完成這個我在我的應用程序中面臨一個概率。 http://stackoverflow.com/questions/10585310/the-application-still-in-ram-after-using-it-and-take-more-2-space-each-time-i-pl查看鏈接 – ADB

+0

請參閱我關於FLAG_ACTIVITY_CLEAR_TOP標誌的編輯 – Janusz

1

要回到上一個活動,您不必創建新的意圖,您可以簡單地將this.finish()稱爲應該消失的那個。

+0

在一個案例中,我必須從活動D-> A,然後在那種情況下我該怎麼做。也請告訴我從一種活動轉移到另一種活動的標準方式。在這種情況下,我將非常感謝你在 – ADB

1

要回到上一個活動,您不必創建新的意圖,您可以簡單地調用this.finish()上應該dissapear或您可以按Back按鈕以查看以前的活動。

1

,每當你想從一個類導航到另一個使用此代碼,可能是這個幫助你導航的活動,

Intent nextpage = new Intent(CurrentActivity.this,NextActivity.class); 
    startActivity(nextpage); 
    this.finish();