2

我的应用程序有 3 个活动(MainActivity、SampleActivity、TempActivity)并且应用程序必须从 MainActivity 开始,因为我在 AndroidManifest 中将其注册为

    <activity
        android:name=".MainActivity"
        android:configChanges="keyboardHidden|orientation"
        android:label="@string/app_name"
        android:launchMode="singleTask"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

    <activity
        android:name=".TempActivity"
        android:configChanges="keyboardHidden|orientation"
        android:label="@string/app_name"
        android:launchMode="singleTask"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >
    </activity>

    <activity
        android:name=".SampleActivity"
        android:configChanges="keyboardHidden|orientation"
        android:label="@string/app_name"
        android:launchMode="singleTask"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">
     </activity>

当我从 MainActivity 切换到 TempActivity 并返回到 MainActivity 然后关闭应用程序时,它通常从 TempActivity 开始。
在我启动我的应用程序时出现这种错误行为之后,它从错误的活动(TempActivity)开始。
请帮我解决这个问题

4

4 回答 4

3

当您从 TempActivity 活动转到 MainActivity 时,您给出完成()
示例:
Intent myIntent = new Intent(TempActivity.this, MainActivity .class);
开始活动(我的意图);
结束();

于 2012-06-14T11:55:43.343 回答
0

这是因为您的活动没有被破坏,它只是暂停(检查活动生命周期)。您可以覆盖onPause以执行所需的行为。

于 2012-06-14T11:52:49.643 回答
0

您如何关闭应用程序,意味着通过主页按钮应用程序不破坏活动,活动仅停止。要退出您的应用程序,您需要完成应用程序中的所有活动。

于 2012-06-14T11:55:08.673 回答
0

每当您按下主页按钮时,您都假设您的应用程序已关闭。但事实并非如此!

根据 android 活动生命周期,您的应用程序将继续在后台运行,当您按下应用程序图标时,它将从它进入后台的位置开始。

如果您在 TempActivity 并且如果您按下主页按钮,那么它将仅从 TempActivity 开始。为了确保当您按下主页按钮时,您的活动应该以 MainActivity 开始,请在您的代码中进行以下更改。

临时活动.java

@Override
void onPause()
    {
    super.onPause();
    finish();
    }

因此,当您下次打开应用程序时,它将从 MainActivity 开始。

于 2012-06-14T13:47:15.313 回答