你知道一旦它被解雇了,是否有可能推迟onStop方法?ANDROID:是否可以延迟onStop?
我重写了onStop()方法,我想在它调用super.onStop()之前添加一个小的延迟。
(我有一个显示视图 - 对话与户主的表面,当我关闭活动,认为是仍然可见的活动 - 像1秒 - 虽然已经显示的主屏幕或前活动)
我有多种关闭活动的方式,我不想为每种方式实现这种行为,这种方式将它放入onStop()对我来说是个好主意。
在此先感谢。 G.
你知道一旦它被解雇了,是否有可能推迟onStop方法?ANDROID:是否可以延迟onStop?
我重写了onStop()方法,我想在它调用super.onStop()之前添加一个小的延迟。
(我有一个显示视图 - 对话与户主的表面,当我关闭活动,认为是仍然可见的活动 - 像1秒 - 虽然已经显示的主屏幕或前活动)
我有多种关闭活动的方式,我不想为每种方式实现这种行为,这种方式将它放入onStop()对我来说是个好主意。
在此先感谢。 G.
这只是一个猜测,完全未尝试,但你可以在super.onStop()
之前不要致电Thread.sleep(1000)
?
这是**不是**你应该在onStop方法中做的事情。 –
够公平的,这只是一个猜测:P –
不,这是不可能的。
1)您不能在UI线程方法中延迟超过几个毫秒的时间,而不会冒着应用程序不响应错误的风险。
2)在返回之前必须调用superclass方法,否则一般会产生错误。
若要在UI方法延迟的时间发生某些事情,您需要启动计时器。但是,当Activity停止可见性时,会调用onStop(),因此即使您设法运行一些代码,以后也不会真的看到任何可见的内容。另外,请记住,onStop()可能会在onDestroy()方法中被调用 - 如果后者甚至在破坏之前甚至被调用(不保证它会被破坏)。所以你的计时器延迟代码可能甚至不能运行。
我希望这是不准确的。需要研究合适的时间 - Android对合理时间的定义是什么。请注意,如果Android *应该有任何UI调用会有点宽松,那么它就是'onStop',因为这是应用程序的最后机会,以确保它们保留了他们所关心的任何内容。您是否有任何证据证明onStop有哪些/哪些不可能? – ToolmakerSteve
允许的时间在Android的历史和配置中各不相同,但UI线程方法必须立即返回的规则始终是绝对的规则。 –
为什么你想要这个延迟?从用户体验的角度来看,对我而言听起来很像,你会希望与曲面支架的对话更快消失。你能提供一些示例代码来重现问题吗? –