如何 return 在最近屏幕显示后持续 activity
How to return to last activity after recents screen
我有一个带有主要 activity 和弹出窗口 activity 的应用程序,如果我留在应用程序中就没有问题。但是,如果弹出窗口 activity 处于打开状态并且您从最近的屏幕重新进入应用程序,则只会显示弹出窗口 activity。如果您随后关闭它,您不会 return 到主 activity 但应用程序会完全关闭。
这会从主 activity:
打开弹出窗口 activity
intent = new Intent(ctx, popupActivity.class);
intent.putExtra("rackName", resultChest.get(2));
ctx.startActivity(intent);
这里是关闭弹出窗口的方法activity:
@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"
导致 activity 在另一个导致我的问题的任务中打开。
要解决此问题并防止弹出窗口 activity 打开两次,我必须使用 android:launchMode = "singleTop"
作为弹出窗口 activity.
你可以这样做
然后转到popupActivity.java
覆盖名为 OnBackPressed 的方法
并添加 finish();对它
代码
@Override
public void onBackPressed() {
finish();
}
不要使用android:launchMode = "singleInstance"
,它会创建一个新任务。
我有一个带有主要 activity 和弹出窗口 activity 的应用程序,如果我留在应用程序中就没有问题。但是,如果弹出窗口 activity 处于打开状态并且您从最近的屏幕重新进入应用程序,则只会显示弹出窗口 activity。如果您随后关闭它,您不会 return 到主 activity 但应用程序会完全关闭。
这会从主 activity:
打开弹出窗口 activityintent = new Intent(ctx, popupActivity.class);
intent.putExtra("rackName", resultChest.get(2));
ctx.startActivity(intent);
这里是关闭弹出窗口的方法activity:
@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"
导致 activity 在另一个导致我的问题的任务中打开。
要解决此问题并防止弹出窗口 activity 打开两次,我必须使用 android:launchMode = "singleTop"
作为弹出窗口 activity.
你可以这样做
然后转到popupActivity.java 覆盖名为 OnBackPressed 的方法 并添加 finish();对它
代码
@Override
public void onBackPressed() {
finish();
}
不要使用android:launchMode = "singleInstance"
,它会创建一个新任务。