2

私のアプリケーションには3つのアクティビティ(MainActivity、SampleActivity、TempActivity)があり、AndroidManifestに登録するため、アプリケーションはMainActivityから開始する必要があります。

    <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 に移動すると、finish()の
例が得られます。
Intent myIntent = new Intent(TempActivity.this, MainActivity .class);
startActivity(myIntent);
終了();

于 2012-06-14T11:55:43.343 に答える
0

ホームボタンを押すたびに、アプリケーションが閉じていると想定していますが、そうではありません!!!

Androidアクティビティのライフサイクルに従って、アプリケーションはバックグラウンドで実行され続け、アプリケーションアイコンを押すと、バックグラウンドになった場所から開始されます。

TempActivity を使用している場合、ホーム ボタンを押すと、TempActivity からのみ開始されます。ホーム ボタンを押したときにアクティビティが MainActivity で開始されるようにするには、コードで次の変更を行います。

TempActivity.java

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

したがって、次にアプリケーションを開くときは、MainActivity で開始されます。

于 2012-06-14T13:47:15.313 に答える
0

これは、アクティビティが破棄されておらず、一時停止しているだけであるためです (アクティビティのライフサイクルを確認してください)。オーバーライドonPauseして、目的の動作を実行できます。

于 2012-06-14T11:52:49.643 に答える
0

どのようにアプリを閉じていますか。つまり、ホーム ボタン アプリケーションによってアクティビティが破棄されず、アクティビティのみが停止されます。アプリケーションを終了するには、アプリケーションでのすべてのアクティビティを終了する必要があります。

于 2012-06-14T11:55:08.673 に答える