欢迎界面正确启动方式,总结5种方法

现在基本上每个app都有自己的引导页或者欢迎界面,用来展示公司logo或者广告浏览、也有一些产品需求是达到一定的界面美化,做一个闪屏界面再进入主界面。不至于显示内容太过突兀。

项目需求最终应该实现效果:
1、用户刚安装apk,进入应用跳转欢迎界面。
2、应用被完全杀死,再进入应用,跳转欢迎界面
3、使用期间,如果应用在后台运行,再次进入程序,不显示欢迎界面
4、(冷启动修复)进入主界面等待时间减短30%。(巧用欢迎界面)
5、MainActivity必须具有桌面属性。

实现功能不难,但是根据不同的项目有不用的需求。
普遍的创建一个SplashActivity。这个应用作为起始页。

方式一:SplashActivity+Timer计时器

由于需要设置3秒后跳转主界面,进行耗时操作,Timer里面已经创建子线程,使用handler处理。

如果觉得有必要,可以在onDestory()进行计时器的销毁。

方式二:SplashActivity+Handler

其实原理和Timer计时器差不多,都是使用创建handler在子线程里面进行耗时操作。

方式三:MainActivity+标志位

需求增加,需要设置Mactivity.class为launcher桌面属性,所以起始页不能是SplashActivity欢迎界面。sp存储标识位,或者全局定义标识位。

就是说MainActivity里面必须设置为LAUNCHER,而不能在SplashActivity里面设置该属性:

所以,很多人就会想到,虽然刚开始启动的是MainActivity主界面,可以在里面设置一个值判断是否已经显示过一次(这个值可以作为全局常量或者保存到SP中)。

方式四:SplashActivity+SharedUtils+标志位

除了正常的欢迎界面,这里做了一个优化,就是新建了一个SharedUtils的activity.

利用SharedUtils 进行判断先跳转到那个界面。如果获取到的str为空,说明欢迎界面之前没有跳转过。即跳转SplashActivity.反之跳转到,主界面MainActivity

然后在Application里面进行初始化。

最后要在AndroidManifest.xml里面定义activty.

上面的方法我觉得都存在又一些瑕疵,一方面使用持久化存储占用一点内存,一方面声明一个Activity降低代码的简洁。

延伸:系统在运行apk的时候首先执行application的SharedUtils初始化,就会执行SharedUtils,在里面判读标识位状态,进行拦截跳转到对应的Activity

方式五 推荐:Theme替换

上面的代码除了SplashActivity.activity,其他的代码删除。

然后app的style文件里面定义

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年6月26日
下一篇 2020年6月26日

相关推荐