【问题标题】:How to finish called activity?如何完成调用的活动?
【发布时间】:2015-04-18 19:03:24
【问题描述】:

这段代码启动了一个新的Activity

Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:123456789"));
startActivity(callIntent);

我怎样才能关闭/完成这个活动(我刚刚从上面的代码开始)?

【问题讨论】:

  • 检查 android:launchMode "singleTask" 和 "singleInstance" here 。你也可以在你的清单中尝试这个android:launchMode="singleInstance",当它完成或创建一个新任务时它会死。

标签: android android-activity activity-finish


【解决方案1】:

你不能。一旦该活动开始,您将在后台堆栈直到它完成(或者如果那是另一个应用程序,用户通过最近或启动器图标导航回来)。其他活动需要自行完成才能让您回来。

【讨论】:

    【解决方案2】:

    你在做什么: 你从Activity-A开始Activity-B

    在这个机制期间会发生什么:

    • 当首先启动Activity-A 时,它有点像 backstack
    • 当你说开始Activity-B 有点转到backstack 顶部Activity-A
    • 所以现在如果你在Activity-A 中调用finish();,它就无法关闭,因为 它位于backstack 中,因此会产生不同的响应,例如 再次重新启动相同的活动或其他方式

    总结一下我的观点:正如Gabe Sechan 在其中一个答案中建议的那样......您必须关闭Activity-B,然后关闭Activity-A

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-07
      • 2012-12-15
      • 1970-01-01
      • 2012-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多