如何在启动时保存应用程序方向状态

时间:2017-06-12 08:58:47

标签: java android

我正在开发一款媒体播放器Android应用。我已在res文件夹中设置纵向和横向布局以用于不同的活动。我希望每个单独的启动实例都有一个方向。这意味着如果用户以纵向模式启动应用程序,它应该显示我唯一的纵向布局直到其被破坏或者如果它启动它横向模式,我的横向布局将被公开。有办法解决这个问题吗?

这是我的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.musicianfocus.ben.wordedfm">
    <uses-permission android:name="android.permission.INTERNET"/>

<supports-screens
    android:smallScreens="false"
    android:normalScreens="true"
    android:largeScreens="true"
    android:xlargeScreens="true"
    android:anyDensity="true"
    />
    />
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".SplashActivity"
            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=".MainActivity"
            android:label="@string/app_name">
            <category android:name="android.intent.category.LAUNCHER" />
            <intent-filter>

                <action android:name="com.musicianfocus.ben.wordedfm.actionPLAY" />
            </intent-filter>
        </activity>
        <service android:name=".RadioService"
            android:enabled="true"/>

    </application>

</manifest>

4 个答案:

答案 0 :(得分:1)

你可以用这个

<activity android:name=".MainActivity" 
        android:screenOrientation="locked">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

答案 1 :(得分:0)

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);

这应该可以通过编程方式禁用方向更改:)

答案 2 :(得分:0)

这是a question which could help you! 您可以在数据库或您想要安全的设置文件中保护它,而不是使用按钮更改它,并使用文件读取器加载它们。

答案 3 :(得分:0)

这不是一个精确的解决方案,但是Jugaad,创建2个活动,一个用于横向,一个用于纵向,当用户启动您的应用时,以编程方式检查方向,例如,如果用户以纵向模式启动您的应用,然后开始活动纵向模式否则为横向。此解决方案将具有冗余代码,但它将根据您的要求工作。