2014-11-05 115 views
0

在我的應用程序中有許多活動,如果用戶在任何活動中按下後退按鈕,它將進入最終活動,其中有按鈕用於評價此應用程序,反饋,Facebook等。當從最後一個活動中按下按鈕時,我可以回到之前的活動。同樣在清單中,我給所有活動提供了android:noHistory =「true」。Android - 如何恢復以前的活動?

例如,如果用戶在A活動中(如果他按下按鈕),它將從那裏進入最終活動,如果他按下按鈕,則應該返回活動A.對於其他活動也是如此。可能嗎?

我終於決定只回到第一個活動,當最後一個活動按下按鈕時,我使用了下面的代碼。

Button first = (Button) findViewById(R.id.first); 
    first.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      startActivity(new Intent(last.this,first.class)); 
      finish(); 

     } 
    }); 

因爲我刪除了android:noHistory =「true」清單中的第一個活動它不斷重複。

如何制止這一點。在第一個活動中,我應該在哪裏調用finish()

+0

它是一個很好的做法,以迴應您收到的答案 – Akhil 2014-11-06 04:50:25

+0

對我的迴應感到抱歉。任何我如何解決它。我忘記在活動 – daas12 2014-11-06 16:58:32

回答

0

我想你調用MainActivity的finish()當您啓動您的FinalActivity

noHistory = "true"應該給你解決,但你可以通過調用您的MainActivity finish()它推出一個新的活動後,立即得到了類似的行爲。然而,最終沒有歷史更可維護,因爲如果您以後再向其中添加另一個startActivity()調用,則最終可能會忘記包含finish()調用。

0

您可以在A活動之上開始最後的活動,然後在其中調用finish()。

實施例:

用戶是在「A」活動,他按下後退按鈕(我想你重寫的onBackPressed方法)。 在那裏你開始了最後的活動,如果用戶按下一個按鈕,你只需調用finish()並且用戶被帶回到'A'活動。

+0

中致電完成另一個onclicklistner感謝您的幫助 – daas12 2014-11-06 17:00:05

0

從Android電子文件建立

機器人:noHistory 無論是否活動應該從活動堆棧被移除和結束(其光潔度()調用的方法)當用戶 從它導航離開和它在屏幕上不再可見 - 如果應該完成,則爲「真」 ,否則爲「假」。缺省值是 「false」。 值爲「true」表示活動不會留下歷史記錄。它不會保留在 任務的活動堆棧中,因此用戶將無法返回。

正如你所提到的noHistory標籤,有由Android &活動保持不回來一疊儘快得到完成你離開他們開始您的最後一個活動

一種解決方案可以發送發射活動名稱,同時啓動最終活動。使用這些信息,您可以在需要時啓動啓動器活動。

e.g

Intent it = new Intent(this,FinalActivity.class); 
it.putExtra("launched_from",this.getClass().getSimpleName()); 
startActivity(it); 

你可以得到reteive它FinalActivity這樣

String launched_from= getIntent().getStringExtra("launched_from"); 

現在你知道從哪個活動它得到啓動。