Xamarin - Back堆栈不清除
本文关键字:清除 堆栈 Back Xamarin | 更新日期: 2023-09-27 18:02:09
我有一个LoginActivity(这是主要活动),在用户登录后,它将他重定向到另一个活动,但是当他按下后退按钮时,它会回到登录活动。我试着用:
StartActivity(typeof(FragmentRendererActivity));
Finish();
:
StartActivity(new Intent(this, typeof(FragmentRendererActivity)));
Finish();
:
Intent intent = new Intent(this, typeof(FragmentRendererActivity));
intent.AddFlags(ActivityFlags.NoHistory);
StartActivity(intent);
和this:
Intent intent = new Intent(this, typeof(FragmentRendererActivity));
intent.AddFlags(ActivityFlags.ClearTop);
intent.AddFlags(ActivityFlags.ClearTask);
intent.AddFlags(ActivityFlags.NewTask);
StartActivity(intent);
Finish();
:
<application android:label="Homecheck" android:theme="@android:style/Theme.DeviceDefault.Light.NoActionBar">
<activity android:name="LoginActivity" android:noHistory="true" android:launchMode="singleTask" />
</application>
…但是没有任何效果。我能做的最接近的事情是,我登录,我去活动B,我按下后退按钮,应用程序退出(暂停状态)。我恢复它,你猜对了,我回到了登录活动。那么,是否有一种方法可以正确地摆脱后堆栈中的活动?P.S.也许问题是我的LoginActivity是主要活动?
如果Login是你的MainActivity,每次应用关闭和打开时,它将是用户看到的第一个屏幕。使用启动屏幕,可以检查您的用户是否已经通过身份验证,并从那里重定向他们。你所说的行为是预期行为
在类的属性中添加NoHistory = true将会把它从后栈中移除
[Activity(Label = "SampleApp", NoHistory = true)]
public class LoginActivty : Activity
{
}
还有一件事你可以尝试清除顶部活动
var intent = new Intent(this, typeof(SampleActivity));
intent.SetFlags(ActivityFlags.ClearTop | ActivityFlags.ClearTask | ActivityFlags.NewTask);
StartActivity(intent);
Finish();