繁体   English   中英

在Android横向模式下调用了其他活动

[英]A Different Activity is Called in Landscape Mode Android

尝试处理我的活动时遇到了一些麻烦。 我目前正在使用2个对话框活动来处理登录和注册。

我的主要活动就是这样的登录活动。

Intent intent = new Intent(this, LoginActivity.class);
startActivity(intent);

登录活动将这样调用注册活动。

Intent intent = new Intent(LoginActivity.this, SignupActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();

我在layout和layout-land目录中有2个activity_signup.xml文件。 出于某种原因,当我进入注册活动并旋转屏幕时,在SignupActivity顶部会调用LoginActivity。

这是我的清单。

    <activity
        android:name=".MainActivity"
        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=".LoginActivity"
        android:theme="@android:style/Theme.Holo.Dialog.NoActionBar" >

    </activity>

    <activity
        android:name=".SignupActivity"
        android:theme="@android:style/Theme.Holo.Dialog.NoActionBar" >
    </activity>


</application>

<uses-permission android:name="android.permission.INTERNET"/>

先谢谢您的帮助。

因此,我意外解决了该问题...方向更改后,MainActivity看到用户已登录并启动了新的LoginActivity。 尽管SignupActivity处于前台。 我只能假定它与LoginActivity和SignupActivity是对话框活动的事实有关。

这是我用来检查屏幕是否旋转的MainActivity的代码。

class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (savedInstanceState != null) {
            //Check if user is logged in, launch LoginActivity
        }
    }
}

将此代码添加到AndroidManifest.xml

<activity
android:name="com.example.testnumber.MainActivity"
android:label="@string/app_name" android:screenOrientation="portrait">

此代码将防止屏幕旋转。您必须在两个活动中都添加此代码。

尝试将其添加到您的SingupActivity

android:launchMode="singleTask"

它仅允许活动的一次迭代

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM