sha*_*anu 13 android android-activity
我的问题与这类问题略有不同.我需要删除或清除我的活动堆栈,然后开始一项新活动.我不认为这是一个clear_top标志问题.我正在解释一个例子:
我的活动流程:
Login > Home > Screen1 > screen2 ....
Run Code Online (Sandbox Code Playgroud)
我完成登录活动或使用no_history标志调用.所以我的活动看起来像这样
Login(finished)> Home [bottom of the stack now] > Screen1 > Screen2[top of the stack]
Run Code Online (Sandbox Code Playgroud)
我需要处理会话错误.如果在任何点发生任何会话错误,我需要返回登录活动.但请记住,我没有堆栈中的登录活动.所以clear_top不起作用.
如果在Screen2中发生任何会话错误,那么我需要清除完整堆栈(screen2,screen1,home),然后开始登录活动.因此,在返回按钮后按下登录活动将关闭我的应用程序.
有没有办法清除活动堆栈?
提前致谢
Gau*_*ale 20
用这个
Intent i = new Intent(yourScreen.this,Home.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.putExtra("EXIT", true);
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
在家庭班的onCreate,做这个来检查,
if (getIntent().getBooleanExtra("EXIT", false))
{
Intent i = new Intent(Home.this,Login.class);
startActivity(i);
finish();
}
Run Code Online (Sandbox Code Playgroud)
这将基本上做的是无论你是什么活动,你可以用清晰的顶部标志调用主屏幕.在主屏幕中,onCreate方法中有一个检查条件,它将有助于清除堆栈并将您带到登录屏幕.现在在登录屏幕上,如果按回按钮,您将在堆栈清除时退出应用程序..
如果问题仍然存在,请告诉我......
这是一个古老的问题,但也许其他人会在搜索类似问题的答案时偶然发现它.
您应该使用标志启动Login活动:Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK- flag NEW_TASK可能有一点令人困惑的名称,但它实际上会创建新任务,如果它不存在(否则将使用当前任务) - 并将CLEAR_TASK从之前的所有活动中清除它.
| 归档时间: |
|
| 查看次数: |
23921 次 |
| 最近记录: |