Android 安卓系统-来回执行额外的不需要的任务

Android 安卓系统-来回执行额外的不需要的任务,android,Android,我的应用程序遇到了一些问题,我不知道如何解决。当我启动我的应用程序时,我的仪表板活动被启动,一些网络任务被执行(在后台下载信息)。然后,我点击新闻按钮,进入新闻活动,在这里我再次在后台下载信息,用最新新闻填充我的列表视图。要启动活动新闻,我使用以下代码: public void onNewsClick(View v) { startActivity(new Intent(this, NewsActivity.class)); } 在news活动中,我有一个带有home按钮的操作栏,用户

我的应用程序遇到了一些问题,我不知道如何解决。当我启动我的应用程序时,我的仪表板活动被启动,一些网络任务被执行(在后台下载信息)。然后,我点击新闻按钮,进入新闻活动,在这里我再次在后台下载信息,用最新新闻填充我的列表视图。要启动活动新闻,我使用以下代码:

public void onNewsClick(View v) {
    startActivity(new Intent(this, NewsActivity.class));
}
在news活动中,我有一个带有home按钮的操作栏,用户应按下该按钮返回仪表板。如果我点击android后退按钮,dashboad将打开ok,并且首次启动dashboard时下载的数据不会再次下载(预期情况)。但是,如果我点击home按钮,仪表板将打开,数据将再次下载。按下主页按钮时,显示以下代码:

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.在不再次加载列表的情况下,我如何回到我的新闻活动

非常感谢您的回答! T

1。)尝试添加

i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
为了你的意图。实际上,您的仪表板活动正在完成,然后重新创建。这将确保您的仪表板活动在已经运行而不是重新创建的情况下处于顶部

2.)如果通过“操作栏主页”按钮返回到仪表板,将此标志添加到NewsActivity意图将允许您不必重新加载NewsActivity

编辑

将此项添加到仪表板活动将确保在按下back时退出应用程序

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

第一个建议是工作正常。现在返回仪表板不会重新加载数据。然而,第二个建议不起作用。当从仪表板返回到新闻活动时,数据再次加载……我正在查看Lindked in应用程序,它们具有我想要在活动中实现的相同行为。进入“更新”活动后,如果返回仪表板并再次转到“更新”活动,则不会再次加载数据。请尝试删除i.addFlags(Intent.FLAG\u activity\u CLEAR\u TOP)标志。这会导致您按下“主页”按钮时新闻活动被破坏,从而需要重新创建新闻活动。嗨@Joe,它不起作用。使用flag\u ACTIVITY\u CLEAR\u TOP,我确保如果用户按下android后退按钮,应用程序将完成。删除此标志后,如果我在新闻活动中输入10次,我必须按“后退”按钮10次才能退出应用程序。嗨@Joe,它没有改变任何东西。我的活动之间一定有什么不对劲。