2012-04-20 47 views
0

我有5項不同的活動。Android - 在5項活動和第一項活動的保留狀態之間切換

第一個活動是我的應用程序的第一頁。它的頂部有一個導航欄,可以讓我在所有5個活動之間移動。 (導航欄存在於所有活動的xml佈局中)

我面臨的問題是每當我回到另一個活動(例如活動1到活動2)之前(活動2到活動1),我的活動1不會渲染MapView。當應用程序沒有切換活動時,MapView可以正常工作。在活動1

startActivity(new Intent(Activity1.this, Activity2.class)); 

代碼我設法回遷的唯一途徑

代碼在活動2

startActivity(new Intent(Activity2.this, Activity1.class)); 

目前:

我目前使用此代碼活動之間移動到活動1是按下手機的後退按鈕。但我會面臨另一個問題。

如果我在兩個以上的活動(例如活動1到活動2和活動3)之間移動,後退按鈕將使其從活動3轉到活動2,最後轉到活動1(我發現一些用於解決這個問題的stackoverflow的例子)

由於我沒有正確配置它,導致MapView不能渲染的主要問題的原因是什麼?

還是它是由我在活動之間切換的方式引起的?

回答

1

對於你的第一個問題,我建議你調查的方法和參數Intent.setFlags(Intent.FLAG_ACTIVITY_???)

例如,在你的例子,你可以這樣做:

代碼在活動1

// No change here 
startActivity(new Intent(Activity1.this, Activity2.class)); 

守則活動2

Intent i = new Intent(Activity2.this, Activity1.class); 
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
startActivity(i); 

這將停止構建堆棧並需要大量後退按鈕才能退出應用程序。通過您的5項活動,您的主要Activity1應該使用默認值啓動Activity2,3,4和5,所有其他活動應使用FLAG_ACTIVITY_REORDER_TO_FRONT在它們自己之間切換並返回到Activity1。

對於第二個問題,我們需要更多信息 - 我可能會建議您實際上從這裏刪除問題,並將其重新發布爲單獨的查詢,以及相關的代碼和LogCat輸出。這很可能與起始活動不直接相關。

+0

嗨肯先生,我已經嘗試了您的建議並收到了積極的迴應。 MapView能夠顯示我的mapLayer。但是,mapLayer可能會顯示已經加載的地圖(顯示完全加載的地圖),或者它開始從ArcGis地圖服務器加載地圖(地圖加載的可視標誌),這似乎有點不一致。另一個問題是,儘管我的mapLayer能夠顯示,但我的graphicsLayer仍然丟失。我測試過我的MapView是否包含graphicsLayer,並且graphicsLayer中是否有任何內容(圖形),並且都返回正值。 – 2012-04-20 06:15:33