android - 应用程序打开一次并保存在内存中时不显示启动画面
问题描述
我想在用户启动我的应用程序时出现启动画面(像往常一样),但是因为我将使用动画启动画面,所以我不想每次打开应用程序时都用相同的动画打扰用户,所以他需要等待 3 秒的动画完成。
所以..
如果用户已经打开了应用程序,我如何让应用程序不显示启动画面,并且应用程序应该检查打开时他是否处于缓存状态,然后再次调用,所以当他从缓存内存中调用时它不应该显示启动画面。
因为这样,这意味着他不会被用户破坏,因此用户可以快速从一个应用程序转到另一个应用程序。
就像在谷歌日历中一样,每次打开它都会让我看到启动画面,但我想做的一切都是检查一些笔记并返回日历以从笔记中制作一些事件。日历每次都花时间看他的启动画面。但是当我有一段时间没有使用它时,它仍然是很好的启动画面。
或者我应该在 MainActivity 中使用 onPause() 和 onDestroy() 方法来实现这一点。如果是这样,我怎么能做到这一点,当我实例化一个时如何不显示启动画面?
解决方案
创建一个 Preference Manager 类来存储一个布尔值来存储启动屏幕检查是否启动。
public class PrefManager {
private static final String KEY_IS_SPLASH_IN = "isSplashScreenIn";
SharedPreferences pref;
// Editor for Shared preferences
Editor editor;
// Context
Context _context;
// Shared pref mode
int PRIVATE_MODE = 0;
public PrefManager(Context context) {
this._context = context;
pref = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
editor = pref.edit();
}
public boolean isSplashIn() {
return pref.getBoolean(KEY_IS_SPLASH_IN, false);
}
public void setSplashIn(boolean setLogin) {
editor.putBoolean(KEY_IS_SPLASH_IN, setLogin);
editor.commit();
}
}
在初始屏幕中使用首选项管理器类
public class SplashActivity extends Activity{
PrefManager pref;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
pref = new PrefManager(this);
if (pref.isSplashIn == false) {
//Splash Screen Load
pref.setSplashIn(true);
} else {
Intent registration = new Intent(ctx, Login.class);
startActivity(registration);
}
}
}
谢谢,快乐编码......
推荐阅读
- angular - 如何在 Angular 组件中创建 HtmlElement 引用?
- javascript - 如何在 NativeScript 中更改 StackLayout 容器的背景颜色?
- python - Python DataFrame,无法分隔属性
- excel - 如何选择列 IF
- javascript - 下划线 groupby 返回数组而不是对象
- opencv - 如何使用鱼眼相机参数解决 PnP?
- python - NodeJs:获取 python-shell 的输出以发送回客户端
- linux - 在信号处理程序中通知父进程的安全方法是什么?
- powerbi - 如何使用 DAX 对多列进行分组并计算特定列中的行数?
- kotlin - 有没有办法用 bytebuddy 在 kotlin 中动态实现 API 接口类?(混合模式)