2011-04-20 21 views
0

我遇到了一些與我的應用程序,我不知道如何解決的問題。當我開始我的應用程序時,我的儀表板活動啓動並執行一些網絡任務(在後臺下載信息)。然後,我點擊了新聞按鈕,然後我被帶到新聞活動中,在那裏我再次下載後臺信息,用最新消息填充我的列表視圖。要啓動我使用下面的代碼活動的新聞:Android - 執行額外的不必要的任務來回

public void onNewsClick(View v) { 
    startActivity(new Intent(this, NewsActivity.class)); 
} 

裏面的新聞活動我有主頁按鈕,用戶應按找回儀表盤的操作欄。如果我點擊了android後退按鈕,dashboad就會打開,並且第一次啓動儀表板時下載的數據不會再次下載(預期場景)。但是,如果我點擊主頁按鈕,儀表板將打開並重新下載數據。當按下主頁按鈕時會取消以下代碼:

public static Intent createIntent(Context context) { 
    Intent i = new Intent(context, DashboardActivity.class); 
    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    return i; 
} 

如果按Home按鈕,我希望儀表板不會再次下載數據。此外,如果我再次開始新聞活動,最新消息的列表將再次下載,這將導致大量流量,我不希望它。

所以我有兩個問題: 1.我怎樣才能讓用戶回到儀表板而不再次加載數據? 2.如何在沒有重新加載列表的情況下返回新聞活動的停留時間?

非常感謝您的任何答案! 牛逼

回答

0

1)嘗試添加

i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 

到你的意圖。事實上,您的儀表板活動正在完成並重新創建。這將確保您的儀表板活動在已經運行並且不重新創建的情況下進入頂端。

2.)將此標誌添加到您的NewsActivity意圖中,如果您通過操作欄主頁按鈕返回儀表板,則無需重新加載NewsActivity。

編輯

添加此資訊主頁活動將確保應用程序被壓回時退出。

@Override 
    public void onBackPressed() { 
     moveTaskToBack(true); 
    } 
+0

第一個建議工作正常。現在回到儀表板不會重新加載數據。但是,第二個建議不起作用。當從儀表板返回新聞活動時,數據再次被加載... – Thiago 2011-04-20 17:45:07

+0

我正在查看應用程序中的Lindked,他們有我想要在我的活動中實現的相同行爲。一旦進入更新活動,如果您返回儀表板再次轉到更新活動,則不會再次加載數據。 – Thiago 2011-04-20 18:09:33

+0

嘗試刪除i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)標誌。這會導致您的NewsActivity在您按下主頁按鈕時被破壞,從而導致必須重新創建它。 – Joe 2011-04-20 18:17:48

相關問題