当我将手机插入某些类型的充电器并进入“汽车模式”或“驾驶模式”时,我正试图处理我的应用程序中出现的问题。
在正在运行的应用程序中,调用onDestroy()并紧跟onCreate(),然后应用程序再次正常启动。但是,后续调用更新UI元素(在新创建的主Activity中)现在没有任何效果,看起来我的布局上已经丢失了范围。
RelativeLayout splash = (RelativeLayout) findViewById(R.id.splash);
splash.setVisibility(View.VISIBLE);
什么可能是onDestroy(),我不考虑?我没有做太多清理onDestroy,因为我认为我不需要。
答案 0 :(得分:0)
Activity
在调用onDestroy()
时已从UI中分离出来,因此对其进行UI调用没有任何意义。如果您需要显示初始值,请在View.VISIBLE
,onCreate()
或可能 onResume()
中将其设置为onPause()
。我不完全确定onPause()
是否会有任何不同。
答案 1 :(得分:0)
当手机旋转时,活动将被销毁并重新创建。插入车载充电器通常会强制手机进入横向模式,从而旋转它(从肖像,最有可能)并呼叫onDestroy
。有一种方法可以通过一些活动标志来防止这种行为 - 但谷歌建议不要这样做。
我们需要为此活动查看更多代码,以了解正在发生的事情。
此外,正如DeeV指出的那样,活动在onDestroy被调用的时候已经很久了,所以它可能不适合做你正在做的事情 - 但是我们需要更多的代码来肯定的。
作为旁注,向上滑动键盘(在带有滑出键盘的手机上)将产生相同的效果。