【问题标题】:Destroy an activity when back button is pressed?按下后退按钮时销毁活动?
【发布时间】:2013-08-08 19:52:39
【问题描述】:

我有一个应用程序,它允许用户从列表中选择一个 txt 文件,然后上网以获取该文件的内容。除非用户意外或故意按下硬件返回按钮以再次查看列表,否则一切正常。

现在,当用户单击列表中的新项目(即新文件)时,应用程序不会加载新文件,而是从暂停的位置继续运行。我不希望这种情况发生。我知道这与活动的生命周期有关。

如何确保它加载新文件而不是从中断处继续?

【问题讨论】:

    标签: android


    【解决方案1】:

    另一种杀死活动的方法是调用以下方法。

    @Override
    public void onBackPressed() {
        super.onBackPressed();
        finish();
    }
    

    【讨论】:

      【解决方案2】:

      要销毁后按时的活动,请使用此代码。

      @Override
      public boolean onKeyDown(int keyCode, KeyEvent event) {
           //Destroys activity.
           finish();
      }
      

      【讨论】:

      • //销毁活动 -> 不,它没有。
      • 尝试使用 this.finish();而不是finish();
      • Err... this.finish()finish() 完全相同。我的意思是finish() 不会破坏活动。阅读文档。
      • 橡木试试这个。我也在使用它。这个对我有用。 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK)) { finish(); } 返回 super.onKeyDown(keyCode, event); }
      • 你似乎没明白我的意思。如果您阅读了文档:finish() 并不能保证您的 Activity 会被销毁。它仅通知 Android 不再需要此 Activity。 Android 将销毁(这与关闭不同)当它喜欢时,而不是在您调用 finish() 时。
      【解决方案3】:

      你只需要在 onBackPressed() 方法中调用 activity.finish() 来完成你的活动;

      【讨论】:

      • Activity#finish() 不保证您的活动已关闭。阅读文档。
      • finish() 不会破坏活动
      【解决方案4】:

      我想您正在加载onCreate() 中的文件。您应该改为在 onResume() 中执行此操作。

      不要强制关闭活动(例如使用finish())。首先,this does not guarantee the Activity will be closed,其次,这最好留给 Android 来决定。

      【讨论】:

      • 问题是,我想从互联网上获取一个全新的文件。这意味着停止AsyncTask 加载第一个文件。然后,为第二个文件生成一个新文件。所以,我猜这需要在onPause 中完成,然后在onStart 中开始一个新的AsyncTask。这样我的代码就不会受到干扰。 :)
      • 那么你应该跟踪AsyncTask获取旧文本文件并取消它。
      • 在哪里取消之前的AsyncTask取决于逻辑。也许导航回此Activity 的用户不想要新文件,只需查看以前的文件即可。您需要研究涉及的案例。
      • 啊,是的!那也是 !!我如何知道AsyncTask 是否正在运行?除了手动执行之外,就是!! :)
      【解决方案5】:

      您可以覆盖活动中的onBackPressed 方法并调用finish() 以获得所需的结果。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-28
        相关资源
        最近更新 更多