gpt4 book ai didi

java - 如何清除应用程序进度中填充的历史记录

转载 作者:行者123 更新时间:2023-12-01 12:14:25 25 4
gpt4 key购买 nike

  1. 如何清除应用程序进度中填充的历史记录,这里创建一个简单的登录应用程序,其中我有两个 Activity LoginActivity和MainActivity,我使用共享首选项来检查用户是否登录,我已经制作了应用程序每次启动应用程序时都会调用的类,我已在 list 中添加了这些代码行

android:name=".FrontScreenApplication"

FrontScreenApplication.class如下

public class FrontScreenApplication extends Application {

public static final String PREFS_NAME = "ApplicationFirstTime";
int PRIVATE_MODE = 0;
private static final String PREF_NAME2 = "LoginPref";
private static final String IS_LOGIN = "IsLoggedIn";

@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();

SharedPreferences pref = getSharedPreferences(PREFS_NAME, 0);
if (!pref.getBoolean("isFirstTime", false)) {
SharedPreferences.Editor editor = pref.edit();
editor.putBoolean("isFirstTime", true);
editor.commit();
Intent intent = new Intent(this, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

} else {

SharedPreferences prefs = getSharedPreferences(PREF_NAME2,MODE_PRIVATE);
boolean result = prefs.getBoolean(IS_LOGIN, false);
if (result) {
Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
} else {
Intent intent = new Intent(this, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}

}
}

list 中的主类是MainActivity,因此首先调用它,当我们返回时,每个 Activity 都显示在backstack LoginAcivity和MainActivity中。

最佳答案

您必须设置 Intent 标志 Intent.FLAG_ACTIVITY_CLEAR_TASK。这将解决您的问题。

      intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)

或者

在 AndroidManifest.xml 文件中为 FrontScreenApplication Activity 放置 android:noHistory="true"。

或者

您可以通过另一种方式来做到这一点,只需在启动 Intent 后完成 FrontScreenApplication Activity 即可。

        Intent intent = new Intent(Login.this, ReadPhoneNo.class);
intent.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();

关于java - 如何清除应用程序进度中填充的历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27099700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com