2015-04-25 32 views
0

我的應用程序中有兩個活動: -
主要活動: - 顯示城市列表
城市活動: - 顯示所選城市的詳細信息。

對於不同的意圖對象的同一活動的多個實例

的問題是: - 如果我選擇的城市「紐約」在MainActivity它帶我到CityActivity,顯示紐約的詳細信息。
如果返回並選擇「舊金山」,那麼它會將我帶到CityActivity並顯示舊金山的詳細信息。

現在當我按下手機設備它帶我去到每個城市活動「紐約」,「舊金山」,......跟瀏覽器後退按鈕一樣。

我嘗試了多個選項來修復它,但它並沒有幫助我: -
a。)在CityActivity中調用finish()。
b。)在Manifest文件中添加android:launchMode =「singleInstance」。

我想在這裏實現的是,如果具有NewYork對象的CityActivity存在於內存中,並且我嘗試選擇「San Francisco」城市,那麼它應該用「New York」Intent對象摧毀活動並創建一個新活動與「舊金山」意圖對象。

回答

0

故意設置標誌「沒有歷史」出發城市活動

+0

試了一下,部分工作。它確實從堆棧中刪除活動。但是我想要的只是在新的City對象啓動活動時刪除它,否則顯示舊的City對象。 – Villie

+0

嘗試將意向標誌設置爲FLAG_ACTIVITY_REORDER_TO_FRONT –

+0

完美!正是我在找什麼。非常感謝! – Villie

0
在你的城市細節活動

添加此

@Override 
public void onBackPressed() { 
finish(); 
} 

這一切

編輯2: 打開詳細活動時這樣稱呼它

Intent i= new Intent(MainActivity.this,DetailsActivity.class); 
i.putExtra("Name",Name); 
.... 
startActivity(i); 
finish()//add this 

時後擠壓在細節活動中做到這一點

@Override 
public void onBackPressed() { 
Intent i= new Intent(DetailsActivity.this,MainActivity.class); 
    startActivity(i);//starting main activity 
finish(); 
} 
+0

它並不總是回按下的舊的活動依然時。有時候,活動仍然是一個通知來到主頁面。從那裏我選擇另一個城市,然後CityActivity與兩個城市在一起。還有其他建議嗎? – Villie

+0

看到我的編輯2 ..和報告 –

相關問題