1

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

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

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

我没有考虑到的 onDestroy() 可能发生了什么?我没有做太多的清理 onDestroy 因为我认为我不需要。

4

2 回答 2

0

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

我们需要查看更多此 Activity 的代码来弄清楚发生了什么。

此外,正如 DeeV 指出的那样,在调用 onDestroy 时该活动早已消失,因此它可能不是执行您正在执行的任何操作的正确位置——但我们需要更多代码来确定。

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

于 2012-03-03T04:19:35.743 回答
0

在调用时,它Activity已与 UI 分离,onDestroy()因此对其进行 UI 调用没有任何意义。如果您需要显示启动画面,请将其设置View.VISIBLEonCreate()onResume()或。我不完全确定是否会采取任何不同的行动。 onPause()onPause()

于 2012-02-21T21:23:31.873 回答