恢复 activity

Restore activity

当我旋转 phone 时,activity 再次调用 onCreate 并重置所有内容。 是否可以像位置管理器那样保留数据和服务,或者我必须保存和恢复它? 我所说的数据是指类似于对象列表的东西。 每次旋转 phone 时,如何防止代码保持 运行 onCreate?

将此添加到您的 ActivityAndroidManifest.xml:

android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"

示例片段:

<activity
    android:name="your.package.activity"
    android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" <!-- Keep data on rotation -->
    android:windowSoftInputMode="adjustPan"> <!-- Keep keyboard from "pushing" layout -->
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

注意:这不是“首选”方式,但我在大多数 Android 应用程序中都使用它(阅读此处:http://developer.android.com/training/basics/activity-lifecycle/recreating.html