如何避免强行关闭手机方向改变?

时间:2011-12-04 11:52:47

标签: android

当我倾斜手机时,我的Android应用程序崩溃并显示强制关闭。有什么建议我可以删除这样的问题?顺便说一下,我正在开发一个使用谷歌地图(MapView)的LBS应用程序。

我有一个启动画面,然后显示如下的ListActivity:

<activity android:name=".Splash" android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity android:name=".Home" android:label="@string/app_name" android:configChanges="orientation" android:windowSoftInputMode="stateHidden">
            <intent-filter>
                <action android:name="com.nepways.HOME" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>


我的声明有什么问题,启动画面加载和列表活动也正常,但是当我更改方向时,应用程序关闭。请帮帮我。

3 个答案:

答案 0 :(得分:3)

当您更改方向时,活动将重新启动

  1. 查看logcat以查看导致您的应用程序到FC的异常
  2. 您可以通过自定义configChanges来更改清单以禁用活动重新启动,如果您有问题覆盖onConfigurationChanged()来修复生成此异常的内容(例如初始化可能导致空指针的内容)< / LI>

答案 1 :(得分:2)

首先,因为每次更改方向时,应用程序都会重新启动(或者在参考重绘中说)。 要在活动的清单文件中阻止它,您必须将此行描述为活动方向:

    <activity android:name=".Splash" 
android:label="@string/app_name"
android:screenOrientation="portrait">...

关于这个按钮或键盘图。说实话我ve got thise warnings sometimes but it doesn改变我的应用程序中的任何内容。因此,首先更改方向设置,然后它应该正确。

如果您想使用其他屏幕方向,请记得在此处查看: http://developer.android.com/guide/topics/manifest/activity-element.html

答案 2 :(得分:0)

如果您想避免在方向更改时重新启动活动,可以将其放入清单文件中的活动中:

android:configChanges="orientation"

否则,我们需要查看更多代码和堆栈跟踪。