【问题标题】:Calling finish() doesn't finish the activity调用 finish() 不会完成活动
【发布时间】:2012-12-15 22:57:35
【问题描述】:

我想在活动因特定原因暂停时完成。直到最近我的代码运行良好,但最近 finish() 方法由于某种原因停止了它的工作。另外,当调用finish() 方法时,我得到以下LogCatmessage:

12-31 18:01:23.445: W/ActivityManager(481): Duplicate finish request for ActivityRecord{42465370 u11 "myapplicationpackage"}

有人可以帮我解决这个问题吗?

OnPause()方法

@Override
protected void onPause() {
    super.onPause();
    finish();
}

【问题讨论】:

  • 在 onPause 中调用 finish() 不是一个好主意。您可以在出现“特定原因”时调用 finish()。可能在事件处理等方面。
  • 您可能想看看这段代码,它向您展示了“重复完成请求发生”的条件。 grepcode.com/file/repository.grepcode.com/java/ext/…

标签: android onpause activity-finish


【解决方案1】:

您可以通过调用if (isFinishing()){} 来检查您的活动是否已经完成,只有在没有完成时才调用finish或者,您可能希望在清单文件中的活动上指定android:noHistory="true",一旦用户离开它,这实际上会完成您的活动。

【解决方案2】:

您很可能拥有正在运行的活动的重复副本。我建议在一个家长下进行所有活动,并使用

finishall()

【讨论】:

  • 没有方法finishall。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-25
  • 2011-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多