我有OnBoard活动和Login活动。成功登录后,在LoginActivity中,我尝试使用以下代码清除登机活动:
startActivity(new Intent(context, HomeActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_CLEAR_TASK));
我什至尝试了Intent.FLAG_ACTIVITY_NO_HISTORY
,但是它也没有用。那我该怎么办?
答案 0 :(得分:0)
尝试以下代码:
Intent intent = new Intent(context, HomeActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
答案 1 :(得分:0)
我想说的是if (layer.raster.constructor.name === 'ValueRaster')
{
(layer.raster as ValueRaster).doMoreStuff();
}
else if (layer.raster.constructor.name === 'ZoneRaster')
{
(layer.raster as ZoneRaster).doMoreStuff();
}
,然后再开始参加板载活动。无需设置任何标志。因为此方法会杀死堆栈中的所有活动以及当前活动
答案 2 :(得分:0)
不需要使用FLAGS。即使您想了解,也请勾选this
有两种方法可以完成当前活动(在您的情况下为LoginActivity)和移至下一个活动(在您的情况下为OnBoard)。
finish()
。它将破坏当前的活动。finishAffinity();
。它将破坏所有先前活动的堆栈。希望对您有帮助。
答案 3 :(得分:0)
为此您有两个选择
您可以使用
第一个解决方案:-
Intent intent = new Intent(context, HomeActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
第二个解决方案:-
致电finishAffinity();
在开始第二活动之前。
答案 4 :(得分:0)
我假设应用程序以OnboardActivity
开头,并且以LoginActivity
开头,然后您想同时清除它们并启动HomeActivity
?
如果是这样,我会这样:
OnboardActivity
使用LoginActivity
启动startActivityForResult()
。LoginActivity
返回指示登录是否成功的结果,并调用finish()
。 LoginActivity
不再在任务中。OnboardActivity
在OnActivityResult()
中检查结果,如果登录成功,则启动HomeActivity
(不需要标志)并自行调用finish()
。LoginActivity
和OnboardActivity
都不见了,HomeActivity
是任务中唯一的Activity
。