Android 安卓:有可能在顶部延迟吗?

Android 安卓:有可能在顶部延迟吗?,android,delayed-execution,Android,Delayed Execution,您知道一旦启动onStop方法,是否可以延迟它 我正在重写onStop方法,我想在它调用super.onStop之前增加一点延迟 我有一个活动,它显示一个视图-与曲面支架的对话框-当我关闭该活动时,视图仍然可见-类似1s-而主屏幕或之前的活动已经显示 我有多种方法来结束活动,我不想实现每种方法的行为,在我看来,把它放在桌面上是个好主意 提前谢谢。 G.这只是一个猜测,完全没有经过测试,但您不能在super.onStop之前调用Thread.sleep1000吗?不,这是不可能的 1在UI线程方法

您知道一旦启动onStop方法,是否可以延迟它

我正在重写onStop方法,我想在它调用super.onStop之前增加一点延迟

我有一个活动,它显示一个视图-与曲面支架的对话框-当我关闭该活动时,视图仍然可见-类似1s-而主屏幕或之前的活动已经显示

我有多种方法来结束活动,我不想实现每种方法的行为,在我看来,把它放在桌面上是个好主意

提前谢谢。
G.

这只是一个猜测,完全没有经过测试,但您不能在super.onStop之前调用Thread.sleep1000吗?

不,这是不可能的

1在UI线程方法中,不能延迟返回超过几毫秒的时间,否则会导致应用程序不响应错误

2在返回之前必须调用超类方法,否则通常会生成错误


要在UI方法之后的延迟时间内发生某些事情,可以启动计时器。然而,当您的活动停止可见性时,会调用onStop,因此您以后不会真正执行任何可见的操作,即使您当时设法运行了一些代码。此外,请记住,onStop很可能在前往onDestroy的途中被调用——如果后者甚至在销毁之前被调用,则无法保证它会被调用。因此,您的计时器延迟代码甚至可能无法运行。

在onStop方法中,这不是您应该做的事情。公平地说,这只是一个猜测:PWhy you want this delay?在我看来,从用户体验的角度来看,您可能希望与surface holder的对话更快地消失。你能提供一些示例代码来重现这个问题吗?我希望这不准确。需要研究多长时间是合适的——Android对合理时间的定义是什么。请注意,如果有任何Android应该稍微宽松的UI调用,它将处于顶部,因为这是应用程序最后一次确保它们保留了所关心的内容。您是否有任何证据表明在onStop中什么是/不可能的?在Android的历史和配置中,允许的时间各不相同,但UI线程方法必须立即返回始终是绝对的规则。