Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 单顶活动不';t按下后退按钮后恢复_Java_Android_Back - Fatal编程技术网

Java 单顶活动不';t按下后退按钮后恢复

Java 单顶活动不';t按下后退按钮后恢复,java,android,back,Java,Android,Back,我有一个活动,我们称之为活动A,它在清单中定义为“launchmode:singleTop”, 以及父级为活动A(在清单中定义)的活动B。 但由于某种原因,当我单击活动B上的“后退”按钮时,它不会继续活动A,而是创建它。我知道这一点,因为我在活动A中的onCreate函数中编写了一行日志,当按下活动B中的“后退”按钮时,会调用该行。 原因可能是什么?它以前对我有效,但突然这个问题开始了 A是活动组StandingsActivity,B是AddStandingsActivity 舱单: <m

我有一个活动,我们称之为活动A,它在清单中定义为“launchmode:singleTop”, 以及父级为活动A(在清单中定义)的活动B。 但由于某种原因,当我单击活动B上的“后退”按钮时,它不会继续活动A,而是创建它。我知道这一点,因为我在活动A中的onCreate函数中编写了一行日志,当按下活动B中的“后退”按钮时,会调用该行。 原因可能是什么?它以前对我有效,但突然这个问题开始了

A是活动组StandingsActivity,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>

当您的活动A进入后台时,系统可能会销毁它以释放内存。当用户关闭活动B时,系统必须再次创建活动A,并且将使用非null的savedInstanceState参数调用onCreate

你能提供你的舱单吗?同时提供启动活动B的代码。您好,我用清单和启动B的代码编辑了这个问题。这是在每个活动A-->活动B-->活动A导航链上都发生的,还是只是有时才发生的?每个链都是这样的。您是否更改了开发人员选项中的某些内容?有一个名为“不要保留活动”的设置,必须将其关闭。首先,感谢您的帮助。这就是为什么我将其设置为单顶启动模式,这样它就不会重新创建它,我如何修复它?没有什么可以保证您的活动在进入后台时不会被破坏。这就是安卓的工作原理。您应该准备好应对这种情况。singleTop意味着,如果任务中存在该活动,它将被重新排序到前端,而不是被创建。这与你面临的问题无关。发射模式与此无关。
    @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);
    }