android:如何重新启动之前已满的活动

时间:2012-04-05 09:45:59

标签: android singleton lifecycle android-activity

我有2项活动。一个活动通过Web服务对外部数据库提出问题,并在另一个活动上显示结果。 我想要的是,当我按下后面的硬件键时,我应该回到第一个活动,当我再次请求第二个活动开始时。 这是我使用的onBackPressed()方法的代码,但它不起作用!我回到第一个正确的活动,但是当我做另一个请求时,第二个活动从我第一次离开的地方开始。例如,我在第二个活动的底部有页码,如果我从第3页按下后面的硬件按钮并执行另一个请求,我的第二个活动将从第3页重新开始及其所有数据。我做错了什么我是在做android生命周期的错误还是(因为即时通讯使用单例类来处理对webservice / db的请求)我使用单例出错了吗?我认为我的错误更多的是关于生命周期的第一点。 任何帮助,将不胜感激。谢谢!

@Override
    public void onBackPressed() {
        super.onBackPressed();
        finish();       
        Intent intent = new Intent(this, pluto.class);
        startActivity(intent);
    }

3 个答案:

答案 0 :(得分:1)

android中的默认反向操作会从堆栈中删除当前活动,并将之前的活动带到onTop。(这就是你要找的东西)。

我无法理解您首先覆盖它的原因以及创建活动的新实例

Intent intent = new Intent(this, pluto.class);     
startActivity(intent)

尝试全部评论此方法,看看是否有效。

编辑1

任务和后台筹码link

答案 1 :(得分:0)

如果您正在寻找一种在按下时重置第二个活动的方法,则应该在onBackPressed方法中手动执行此操作。 在Android中使用singelton也会有点混乱,因为你无法完全控制活动何时被销毁。你确定需要使用它吗? Android自动执行状态保存。 而且正如毁灭所说,你不需要在按下后退时手动启动活动。

答案 2 :(得分:0)

实际上你在onBackPressed()方法中调用另一个之前完成当前活动。因此,如果你想完成你的工作,只需删除finish();从该方法命令并在该活动的onPause()中调用它。