Android - 在onDestroy()之后丢失UI元素的范围

时间:2012-02-21 21:14:36

标签: android android-activity ondestroy

当我将手机插入某些类型的充电器并进入“汽车模式”或“驾驶模式”时,我正试图处理我的应用程序中出现的问题。

在正在运行的应用程序中,调用onDestroy()并紧跟onCreate(),然后应用程序再次正常启动。但是,后续调用更新UI元素(在新创建的主Activity中)现在没有任何效果,看起来我的布局上已经丢失了范围。

    RelativeLayout splash = (RelativeLayout) findViewById(R.id.splash);
    splash.setVisibility(View.VISIBLE);

什么可能是onDestroy(),我不考虑?我没有做太多清理onDestroy,因为我认为我不需要。

2 个答案:

答案 0 :(得分:0)

Activity在调用onDestroy()时已从UI中分离出来,因此对其进行UI调用没有任何意义。如果您需要显示初始值,请在View.VISIBLEonCreate()可能 onResume()中将其设置为onPause()。我不完全确定onPause()是否会有任何不同。

答案 1 :(得分:0)

当手机旋转时,活动将被销毁并重新创建。插入车载充电器通常会强制手机进入横向模式,从而旋转它(从肖像,最有可能)并呼叫onDestroy。有一种方法可以通过一些活动标志来防止这种行为 - 但谷歌建议不要这样做。

我们需要为此活动查看更多代码,以了解正在发生的事情。

此外,正如DeeV指出的那样,活动在onDestroy被调用的时候已经很久了,所以它可能不适合做你正在做的事情 - 但是我们需要更多的代码来肯定的。

作为旁注,向上滑动键盘(在带有滑出键盘的手机上)将产生相同的效果。