2011-04-20 77 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

相关问题