Android
来源:互联网 发布:gson遍历json 编辑:程序博客网 时间:2024/06/05 02:32
1.有很多知名程序的闪屏页都是这样的效果:
首次进入程序时展示闪屏页,程序进入后台以后再次打开程序时不展示闪屏页,程序进程被杀死后再次进入程序展示闪屏页。
2.功能实现:
要实现这个功能的话,我首先想到的是Activity的生命周期,不过很快这种想法就被pass掉了。之后我的思路是,判断应用程序是否在后台,如果在后台的话再次打开的时候就不展示闪屏页,如果不在后台的话就展示闪屏页。然后尝试了很多种方式来判断程序是否在后台运行,不过均没有什么效果。然而最后还是让我找到了一种方法,直接上代码:
SplashActivity.java的关键代码
private void startMyActivity(boolean isFromBackstage) { final boolean isUserLogin = PrefUtil.getBoolean(MainApplication.mContext, MyConstant.isUserLogin, false); if (isUserLogin) { if (isFromBackstage) { IntentUtil.startActivity(SplashActivity.this, MainActivity.class); finish(); } else { new Handler().postDelayed(new Runnable() { @Override public void run() { IntentUtil.startActivity(SplashActivity.this, MainActivity.class); finish(); overridePendingTransition(R.anim.anim_static, R.anim.anim_static); } }, 2000); } } else { new Handler().postDelayed(new Runnable() { @Override public void run() { IntentUtil.startActivity(SplashActivity.this, LoginActivity.class); finish(); overridePendingTransition(R.anim.anim_static, R.anim.anim_static); } }, 2000); } } // 用于判断是否从后台返回或者是否到后台 public static boolean isAppWentToBg = false; public static boolean isWindowFocused = false; public static boolean isBackPressed = false; @Override public void onBackPressed() { isBackPressed = true; super.onBackPressed(); } @Override protected void onStart() { startMyActivity(isAppWentToBg); if (isAppWentToBg) { isAppWentToBg = false; // 从后台返回 //ToastUtil.showToast(this, "从后台返回"); } super.onStart(); } @Override protected void onStop() { super.onStop(); if (!isWindowFocused) { isAppWentToBg = true; // 进入后台 //ToastUtil.showToast(this, "进入后台"); } } @Override public void onWindowFocusChanged(boolean hasFocus) { isWindowFocused = hasFocus; if (isBackPressed && !hasFocus) { isBackPressed = false; isWindowFocused = true; } super.onWindowFocusChanged(hasFocus); }
3.源码下载
安卓闪屏页的处理
阅读全文
0 0
- Android
- android
- Android
- android
- android
- Android
- Android
- android
- android
- android
- Android
- Android
- android!!!
- android
- android
- android
- android
- android:
- grep过滤
- new的数据能用free吗?
- Go1.9按行读取日志文件并处理
- 登录界面测试用例设计
- ServletRequest接口的常用方法
- Android
- Scrapy在采集网页时使用随机user-agent
- 获取父窗口的元素的方法
- MongoDB数据库安装配置
- jlink下载配置
- 2017年6月22日
- HDU 4331 Image Recognition 题解
- JAVA--自己实现ArrayList
- 关于mysql复合索引