我的应用在用户首次运行应用时显示了注册活动,如下所示:
因此,当用户点击每个屏幕上的按钮时,活动将以完全相同的顺序相互启动.
当用户从活动#2转到#3时,是否可以完全从历史堆栈中删除#1和#2?我喜欢它,以便如果用户在#3,并点击后退按钮,他们只是转到主屏幕,而不是回到启动画面.
我想我可以用任务来完成这个任务(即在#3上开始一个新任务)但是想看看是否有更简单的方法,
谢谢
在Android中我有一些活动,比方说A,B,C.
在A中,我使用此代码打开B:
Intent intent = new Intent(this, B.class);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
在B中,我使用此代码打开C:
Intent intent = new Intent(this, C.class);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
当用户点击C中的按钮时,我想返回A并清除后栈(关闭B和C).因此,当用户使用后退按钮B和C将不会显示时,我一直在尝试以下内容:
Intent intent = new Intent(this, A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
但是当我回到活动A时,如果我使用后退按钮,B和C仍然会出现.我怎么能避免这种情况?
我在Android中有一个包含多个活动的应用程序,我希望用户能够通过按菜单按钮注销.我遇到的问题是
A)的Android不会让你终止应用程序和
B),即使我的用户发送给LoginActivity他们又可以随时按下背部和马上回以前的活动,他们是in.
我已经尝试使用以下两个标志启动Activity:
Intent intent = new Intent(this, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
我也亲自尝试过每一个.
我也打过电话finish()后startActivity(intent),我在另一个StackOverflow的问题读取.
我想在开始新的Activity意图时清除backstack.
我的问题的具体情况如下:我有这样的活动A> B> C> D> E"A"是注册活动,"B"是确认注册活动.我希望当用户启动活动"B"时他不能再回到活动"A",当用户达到活动"C"时,活动"A"和"B"都没用,我不需要用户再回到他们身边了.
此外,当用户从"C"移动到活动"D"时,他可以回到"C"但是如果他进一步移动到"E"活动,他就不能回到之前的任何"C"或"D" "活动.
经过大量的研究,我得到的最好的是使用flag:FLAG_ACTIVITY_NO_HISTORY,但它对我的情况有两个问题:
到目前为止我找不到这个问题的解决方案,我认为如果有什么东西可以清除当前任务的后台,那会更容易!
我的最低SDK支持是5.
提前致谢.