1

在我的活动中,在 oncreate() 中完成了很多处理,例如打开数据库、在 sd 卡上写入文件。但是所有这些繁重的处理只在第一次启动活动时发生一次,而不是在那之后。我正在使用异步任务来实现这一点。

我正在使用以下代码来防止在设备配置更改期间重新启动活动。

if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT){
                    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
                }
                else {
                    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
                }

我希望在初始设置发生时仅因设备方向更改而禁用活动重启,之后,我想启用活动重启。知道如何实现这一目标吗?

4

3 回答 3

0

“如果你不能打败他们,就加入他们”他们说。因此,您应该更好地组织您的应用程序工作流程。

将您的 UI 相关操作保留在标准生命周期方法(onCreate、onStart 等)中,并要求对其他线程进行持久操作。

请查看 AsyncTask 和 IntentService 类,它们对您非常有用。

总而言之,让你的代码适应底层系统通常比强迫系统本身遵循你的意愿更容易

于 2012-02-21T07:36:09.187 回答
0

将此添加到清单文件中的活动标签

android:configChanges="方向|keyboardHidden"

于 2012-02-21T07:40:21.200 回答
0

最简单的方法是调用setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR). 不过,我最好考虑一下 STT LCU 的说法。以下是我建议开始的一些文章:

http://developer.android.com/guide/topics/resources/runtime-changes.html

http://www.vogella.de/articles/AndroidPerformance/article.html#lifecycle

于 2012-02-21T10:11:33.343 回答