如何清除所有先前的活动记录?

3
我已经创建了一个包含5个活动以及启动画面的Android应用程序。
我使用意图(intents)在不同的活动之间进行跳转,并在按钮上定义了一些操作,例如更改按钮的背景图像以及在该活动中为字符串分配值。
当我在我的Java文件中点击返回按钮时,我使用了“moveTaskToBack()”方法,并在清单文件中添加了“android:launchMode =“singleInstance””设置。
从“5.java”页面,我必须跳转到启动屏幕并重新启动整个应用程序。
当我从启动屏幕跳转到“1.java”页面时,之前输入的详细信息仍然显示在屏幕上。
我的问题是如何清除在“1.java”页面、 “2.java”页面、 “3.java”页面、 “4.java”页面和“5.java”页面中输入的所有先前信息。
请帮助解决这个问题...谢谢。

当您在使用后退按钮时,Java 5 到 4 或 Java 4 到 3,请使用 finish();。 - Android Dev
1
当您调用新的Intent时,请调用finish(); - Chirag Savsani
我必须在从Splash重新启动后清除数据,例如1.java等。 - Saranya
有两种方法可以实现这个,第一种是使用“startActivityForResult”来启动下一个活动并在“onActivityResult”中使用“resultCode”,第二种是创建静态标志并在每个活动中检查该标志,然后结束活动。 - Pavya
请详细告诉我。 - Saranya
显示剩余4条评论
5个回答

2

考虑到您正在从Java5类迁移到闪屏界面。

您需要像这样清除先前打开的活动:

Intent intent = new Intent(Java5Class.this, SplashScreen.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
this.finish();

2

在启动另一个 Activity 之前,只需调用 finish()


1

试着这样做,当按下后退按钮时它将起作用

   @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) 
        {
            if ((keyCode == KeyEvent.KEYCODE_BACK))
            {


                Intent intent = new Intent(getApplicationContext(), previousActivvty.class);
                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                intent.putExtra("EXIT", true);
                startActivity(intent);
                finish();
            }
            return super.onKeyDown(keyCode, event);
        }

1
尝试一下。
 Intent intent = new Intent(getApplicationContext(), Home.class);
 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
 startActivity(intent);
 finish();

这将清除所有在主页之上的活动。

1
在开始新活动之后,结束你想要销毁的活动。
StartActivity(new Intent(this,Second.class));
finish();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接