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