我正在尝试在我的应用程序中实现一次性 EULA 和密码创建屏幕。
我努力做到这一点尽可能干净和无缝。我当前的实现涉及需要设置的 SharedPreference,如果不是,它应该显示 EULA 和密码创建屏幕。
/**
*
* @param context
* @return
*/
public static boolean isFirstLaunch(Context context) {
SharedPreferences reader = context.getSharedPreferences(
PREFERENCES, Context.MODE_PRIVATE);
String apiKey = reader.getString(APIKEY, "");
return apiKey == "";
}
当用户完成接受 EULA 并创建密码时,将设置 API 密钥。但是,我看到之前的活动仍在启动/动画中。所以我一直在尝试删除第一个活动的动画,但到目前为止还没有运气。
在活动中:
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
if (InitialLoading.isFirstLaunch(this)) {
Intent intent = new Intent(this, EndUserAgreementActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(intent);
//getWindow().setWindowAnimations(0);
overridePendingTransition(0,0);
finish();
return;
}
if (InitialLoading.isPasswordLoginEnabled(this)) {
}
Intent intent = new Intent(this, OverviewActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_NO_HISTORY|Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(intent);
finish();
}
你们知道我怎样才能让它看起来好像在所有场景中只启动了一项活动:
- (不显示)已启动的活动 -> EULA -> 密码创建 -> 已启动/其他活动
- (不显示)已启动的活动 -> 身份验证屏幕 -> 已启动/其他活动
- 发起活动
目前,当我尝试启动 EULA 时,我仍然看到之前的活动闪烁。我检查了 Whatsapp 并且该应用程序在启动非 EULA 活动时确实显示闪烁,所以我想知道这是否可能。
我已经有一个设置屏幕,如果身份验证选项保持启用状态,密码屏幕将禁用该屏幕,所以不用担心。
无论如何,感谢您的帮助。