我有一个有两个活动的应用程序。 MainActivity
(这是启动器活动)和LoginActivity
。用户启动应用后,会跳过MainActivity
并显示LoginActivity
。但是,如果按后退按钮,您仍然可以导航到MainActivity
。我使用以下代码来阻止这种情况发生,但它无法正常工作。
在MainActivity
课程中:
Intent intent = new Intent(this, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
有什么想法吗?
答案 0 :(得分:1)
在finish();
... finish()之后使用startActivity(intent);
一旦你从中导航就会杀死它。
答案 1 :(得分:1)
Intent intent = new Intent(this, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
如果设置两次,则会设置最后一个。
答案 2 :(得分:0)
只需在最后添加finish();
并将标记更改为CLEAR_TOP
,而不是CLEAR_TASK
:
Intent intent = new Intent(this, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
答案 3 :(得分:0)
喜欢
Intent intent = new Intent(this, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
finish();//this line will finish MainActivity, then there will no instance of MainActivity in backstack.
第二:如果你停止按钮工作,你可以覆盖OnBackPressed()metjod并从中移除super ...然后返回按钮将不起作用(设备)。