簡體   English   中英

Singletop 活動不會在按下后退按鈕時恢復

[英]Singletop activity doesn't resume on Back Button press

我有一個活動,我們稱它為活動 A,它在清單中定義為“launchmode:singleTop”,還有一個活動 B,其父項是活動 A(在清單中定義)。 但出於某種原因,當我單擊活動 B 上的后退按鈕時,它不會恢復活動 A 而是創建它,我知道這一點是因為我在活動 A 的 onCreate function 中寫了一條日志行,按下時調用B中的后退按鈕。這可能是什么原因? 它以前對我有用,但突然這個問題開始了。

A 是活動 GroupStandingsActivity,B 是 AddStandingsActivity。

清單:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.amigo">

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="false"
        android:theme="@style/GreenTheme"
        tools:ignore="GoogleAppIndexingWarning"
        tools:replace="android:supportsRtl">
        <activity android:name=".Activities.MatchResultsActivity" />
        <activity android:name=".Activities.TeamAssignmentActivity"
            android:parentActivityName=".Activities.GroupStandingsActivity"/>
        <activity
            android:name=".Activities.AddPlayerActivity"
            android:parentActivityName=".Activities.AddStandingsActivity" />
        <activity
            android:name=".Activities.AddStandingsActivity"
            android:launchMode="singleTop"
            android:parentActivityName=".Activities.GroupStandingsActivity" />
        <activity
            android:name=".Activities.AddEditGroupActivity"
            android:parentActivityName=".Activities.GroupListActivity" />
        <activity
            android:name=".Activities.GroupListActivity"
            android:launchMode="singleTop">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".Activities.GroupStandingsActivity"
            android:launchMode="singleTop"
            android:parentActivityName=".Activities.GroupListActivity" />
    </application>

</manifest>

啟動 AddStandingActivity 的代碼:有一個啟動 AddStandingsActivity 的菜單按鈕

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.add_standings_menu:
                addPlayer();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

    private void addPlayer() {
        Intent intent = new Intent(GroupStandingsActivity.this, AddStandingsActivity.class);
        intent.putExtra(AddStandingsActivity.EXTRA_GROUP_ID, groupID);
        startActivityForResult(intent, ADD_STANDINGS_REQUEST);
    }

當您的活動 A 進入后台時,系統可能會銷毀它以釋放 memory。當用戶關閉您的活動 B 時,系統必須再次創建活動 A,並且將使用非空的 savedInstanceState 參數調用 onCreate。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM