如何在"最近"屏幕后返回到上一个活动



我有一个带有主活动和弹出活动的应用程序,如果我留在应用程序中没有问题。但是,如果弹出活动处于打开状态,并且您从"最近"屏幕重新进入应用程序,则仅显示弹出活动。如果随后关闭它,则不会返回到主活动,但应用程序会完全关闭。

这将从主活动打开弹出活动:

intent = new Intent(ctx, popupActivity.class);
intent.putExtra("rackName", resultChest.get(2));
ctx.startActivity(intent);

这是关闭弹出活动的方法:

@Override
public boolean onTouchEvent(MotionEvent event) {
finish();
return super.onTouchEvent(event);
}

AndroidManifest.xml:

<application
android:allowBackup="true"
android:icon="@mipmap/ic_lchr"
android:logo="@mipmap/ic_lchr"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_lchr_round"
android:supportsRtl="true">
<activity android:name=".MainActivity"
android:theme="@style/AppTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".popupActivity"
android:theme="@style/popupTheme"
android:launchMode = "singleInstance">
</activity>
</application>

解决方案
正如@RedWolf提到的android:launchMode = "singleInstance"导致活动在另一个导致我问题的任务中打开。
为了解决这个问题并防止弹出活动打开两次,我不得不对弹出活动使用android:launchMode = "singleTop"

不要使用android:launchMode = "singleInstance",它会创建一个新任务。

你可以这样做

转到弹出活动.java然后 重写名为 OnBackPress 的方法 并添加完成((;到它

法典

@Override
public void onBackPressed() {
finish();
}

相关内容

  • 没有找到相关文章

最新更新