2013-10-23 63 views
0

你知道一旦它被解雇了,是否有可能推迟onStop方法?ANDROID:是否可以延迟onStop?

我重写了onStop()方法,我想在它调用super.onStop()之前添加一个小的延迟。

(我有一个显示视图 - 对话与户主的表面,当我关闭活动,认为是仍然可见的活动 - 像1秒 - 虽然已经显示的主屏幕或前活动)

我有多种关闭活动的方式,我不想为每种方式实现这种行为,这种方式将它放入onStop()对我来说是个好主意。

在此先感谢。 G.

+0

为什么你想要这个延迟?从用户体验的角度来看,对我而言听起来很像,你会希望与曲面支架的对话更快消失。你能提供一些示例代码来重现问题吗? –

回答

-1

这只是一个猜测,完全未尝试,但你可以在super.onStop()之前不要致电Thread.sleep(1000)

+1

这是**不是**你应该在onStop方法中做的事情。 –

+0

够公平的,这只是一个猜测:P –

0

不,这是不可能的。

1)您不能在UI线程方法中延迟超过几个毫秒的时间,而不会冒着应用程序不响应错误的风险。

2)在返回之前必须调用superclass方法,否则一般会产生错误。

若要在UI方法延迟的时间发生某些事情,您需要启动计时器。但是,当Activity停止可见性时,会调用onStop(),因此即使您设法运行一些代码,以后也不会真的看到任何可见的内容。另外,请记住,onStop()可能会在onDestroy()方法中被调用 - 如果后者甚至在破坏之前甚至被调用(不保证它会被破坏)。所以你的计时器延迟代码可能甚至不能运行。

+0

我希望这是不准确的。需要研究合适的时间 - Android对合理时间的定义是什么。请注意,如果Android *应该有任何UI调用会有点宽松,那么它就是'onStop',因为这是应用程序的最后机会,以确保它们保留了他们所关心的任何内容。您是否有任何证据证明onStop有哪些/哪些不可能? – ToolmakerSteve

+0

允许的时间在Android的历史和配置中各不相同,但UI线程方法必须立即返回的规则始终是绝对的规则。 –

相关问题