2015-02-10 51 views
-1

我有一個活動叫做A,活動A上的一些事件調用活動B.現在,當我在活動B中使用向上導航時,它回到活動A,但也調用onCreate方法。如果我使用後面的硬件/軟鍵,它不會調用onCreate,而只是返回到活動A,它留在那裏。我如何使向上導航的行爲方式相同?活動調用onCreate on Back

我的onCreate使網絡調用異步。再打一次電話只會浪費數據和時間。 這是我使用從活動A.

Intent intent = new Intent(MainActivity.this, newsIndexActivity.class); 
        intent.putExtra("CityName", cityName.getText()); 
        startActivity(intent); 
+0

您能否提供我們的一些源代碼? – Superbyte 2015-02-10 08:56:50

+1

不要與系統作戰:你的父母活動可以在任何時候被破壞,所以你需要做好準備,從頭開始創建(onCreate被調用) – pskink 2015-02-10 09:37:59

+0

夠公平的。在那種情況下,我可以檢查我的活動是否被破壞?如果不被破壞,爲什麼再次創建它? – 2015-02-10 09:47:43

回答

-2

推出活動B只需撥打光潔度()或onBackPressed()方法,在您的按鈕回調監聽器的代碼。

finish(); 
super.onBackPressed(); 
+0

'supre.onBackPressed() ;'。你拼寫錯了'super'。 'super.onBackPressed();'調用已經'finish()' – Blackbelt 2015-02-10 09:10:03

+0

謝謝@Blackbelt,糾正它:) – dhuma1981 2015-02-10 09:11:53

+0

我試過了。沒有工作。每次使用UP按鈕時都會調用OnCreate。 – 2015-02-10 09:32:40

0

沒有任何代碼似乎很難解決,但最可能的原因是,你打電話給startActivity。只需使用finish()關閉您當前的活動,並使用它應該按預期行爲的後臺堆棧。

4

向上向後導航是不一樣的,如果你希望你的向上導航按鈕行爲像後退按鈕,你應該做這樣的事情

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case android.R.id.home: 
      this.finish(); 
      return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

如果可能的話,你應該看看這個鏈接:

在那裏,你可以有更多這方面的信息。

+0

試過了。仍然是同樣的行爲。 – 2015-02-10 09:20:15

+0

謝謝。這對我有效。 – Vinay 2017-01-05 06:49:09

+0

這應該是被接受的答案。 – John 2017-05-14 00:07:16

相關問題