Android应用程序以错误的活动开始

时间:2012-06-14 11:44:24

标签: android eclipse android-activity

我的应用程序有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然后关闭Application时,它通常从TempActivity开始。在我启动应用程序后,这种错误的行为后,它从错误的活动(TempActivity)开始。
请帮我解决这个问题

4 个答案:

答案 0 :(得分:3)

当你从TempActivity活动转到MainActivity时,你给finish()
例如:
      Intent myIntent = new Intent(TempActivity.this,MainActivity .class);
      startActivity(myIntent);
      光洁度();

答案 1 :(得分:0)

这是因为您的活动未被销毁,只是暂停(检查活动life cycle)。您可以覆盖onPause以执行所需的行为。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

无论何时按下主页按钮,您都会假设您的应用程序已关闭。但它不是!

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

如果您使用的是TempActivity,如果按主页按钮,它将仅从TempActivity开始。要确保当您按下主页按钮时,您的活动应该从MainActivity开始 在您的代码中进行以下更改。

<强> TempActivity.java

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

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