关于finish()在android中

有人可以提供一个活动调用finish()时发生的情况的描述吗?

它立即退出,还是完成了它被调用的function?

4 Solutions collect form web for “关于finish()在android中”

它是立即退出还是完成它被调用的function?

调用finish()的方法将运行完成。 finish()操作将不会开始,直到您将控制权返回给Android。

ondestroy()是在您的活动被销毁之前接收到的最终呼叫。

这可能是因为活动正在完成(某人称为finish() ,或者系统暂时销毁活动实例以节省空间,您可以使用isFinishing()方法区分这两种情况。

一个Activity的onCreateonResumeonPause …. onDestroy等每个生命周期事件总是在单个线程上调用 – “主线程”。

简而言之,这个线程由一个队列支持,所有活动事件都被发送到该队列中。 这个线程可以按照插入的顺序执行所有这些事件。

如果你正在像onCreate()这样的生命周期callback之一中调用finish() ,那么将会添加一个“finish”消息到这个队列中,但是这个线程不能自由地select和执行“finish”动作,直到当前执行的方法返回即线程从当前任务中释放。

如果有两个活动A和B.而你的stream程从A> B进行; 和B = A调用finish()

然后,

你叫做finish()的方法将会像Mark提到的那样执行。 callbackstream程如下 –

  1. activity A onPause()
  2. 活动B的onRestart() > onStart() > onResume()
  3. 然后,真正的区别。 如果你没有从activity A调用finish() 只有Activity A onStop()会被调用。 而在这种情况下,我们从Activity A调用finish() 。 所以onStop()onDestroy()都将被调用activity A
  • 在Android上将数据库备份到SDCard
  • 如何在Android Studio中更改Android版本和代码版本号?
  • 错误:无法在Android Studio中定位SDK中的adb
  • 如何只获得类名,而不是完整的path?
  • Google Maps API版本的差异
  • 在Android上获取应用程序安装date
  • 在Android设备上安装应用程序后,仅运行一次代码
  • 如何使用Google Maps V2删除单个标记?
  • closures自动提示的EditText?
  • 适用于Android的图表
  • Android Studio卡在解决依赖关系的Gradle上