簡體   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