android– 当我去活动时清除活动堆栈

android– 当我去活动时清除活动堆栈,第1张

概述我正在开发一个包含多个活动的应用程序,问题是我希望用户能够通过按下按钮退出.假设我们有4个名为A,B,C,D的Activity.活动的导航如B->C->D.在活动D上,用户可以选择退出.当用户单击“注销”按钮时,他将转到活动A,该活动未在导航中调用.现在,用户点击后退按钮,然后他进入活动D之

我正在开发一个包含多个活动的应用程序,问题是我希望用户能够通过按下按钮退出.

假设我们有4个名为A,B,C,D的Activity.活动的导航如B-> C-> D.

在活动D上,用户可以选择退出.当用户单击“注销”按钮时,他将转到活动A,该活动未在导航中调用.现在,用户点击后退按钮,然后他进入活动D之前的活动.

我已经尝试使用以下两个标志启动Activity:

Intent intent = new Intent(this, LoginActivity.class);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_top);        startActivity(intent);

有人可以帮忙吗?

解决方法:

好吧,我自己做了一个小项目来模拟你拥有的东西.我将在下面的代码中省略导入.另外,阅读所有代码和注释,我没有写它们让你跳过它们.让我们调用类splash,login,page1,page2和page3.在你的splash类中,在onCreate()方法之前,让我们做一些事情.

package com.test.jeets;public class splash extends Activity {    //Add all of these right here!    public static boolean loggedin = false;    public static int sdk = new Integer(Build.VERSION.SDK).intValue();    /** Called when the activity is first created. */    @OverrIDe    public voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.splash);        //This is your splash screen, all the code goes here!    }}

现在那是你的闪屏!完成!对于登录屏幕,我们要确保它不能返回到启动画面,而是在按下后退出应用程序.这很简单!让我们覆盖后退按钮并使用moveTaskToBack(true).

package com.test.jeets;public class login extends Activity {    @OverrIDe    public voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.login);        //This is the login page stuff. nothing special needs done here.    }    @OverrIDe    public boolean onKeyDown(int keyCode, KeyEvent event)  {        if (splash.sdk < 5 && keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {            onBackpressed();        }        return super.onKeyDown(keyCode, event);    }    //This will make the back button exit the app to the home screen.    @OverrIDe    public voID onBackpressed() {        moveTaskToBack(true);        return;    }    //If the user leaves the app from the login screen while not logged in, they are returned to the splash screen.    @OverrIDe    public voID onRestart() {        super.onRestart();        if(splash.loggedin == false){        Intent i = new Intent(login.this, splash.class);        startActivity(i);}    }}

现在,已经完成了!让我们转到您的第一页(您登录后转到的页面)并在onCreate()方法中添加一行

splash.loggedin = true;

您可能想要考虑让用户退出此页面也将其注销.没必要,但肯定可行.

当用户使用注销按钮注销时,您需要做的最后一件事是将该变量设置为false.所以在按钮的代码中,在再次启动登录活动的调用之前,只需添加splash.loggedin = false;.现在,当单击该按钮时,它将记录用户,将变量设置为false,并将它们带到登录屏幕.就像我说的那样,我通过一个简单的布局和活动之间真正的基本切换来测试它,它对我来说很好.

总结

以上是内存溢出为你收集整理的android – 当我去活动时清除活动堆栈全部内容,希望文章能够帮你解决android – 当我去活动时清除活动堆栈所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1115334.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存