应用开发(一)

应用开发(一)

欢迎界面

设计为全屏显示一张图片,显示3秒后跳转到主界面。

想法为通过设置欢迎界面活动布局文件,添加背景来显示。

遇到问题,由于图片太大导致启动崩溃,报错显示
报错Binary XML file line #0 : Error inflating class
一直找不到问题所在。之前遇到过资源加载太大时会崩溃,把图片截取再压缩,大小在100kb左右,不再报错。

另外,layout里设置背景,再在代码里设置全屏会有延时,一打开不全屏,重新创建进程属于冷启动,可以用theme可以解决。WindowManager会先加载app主题样式中的windowBackground做为app的预览元素,然后再真正去加载activity的layout布局,所以将背景设置在theme里比设置在layout更快加载。

1
2
3
4
5
<style name="StartTheme" parent="AppTheme">
<item name="android:windowBackground"> @drawable/welc</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
</style>

定时器设置

1
2
3
4
5
6
7
8
9
10
11
Timer timer = new Timer();
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
Intent intent = new Intent(WelcomeActivity.this, HomeActivity.class);
startActivity(intent);
finish();
}
};

timer.schedule(timerTask, 3000);

效果:
welc

1、冷启动:当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就是冷启动。

特点:冷启动因为系统会重新创建一个新的进程分配给它,所以会先创建和初始化application类,再创建和初始化MainActivity类(包括一系列的测量、布局、绘制),最后显示在界面上。

2、热启动:当启动应用时,后台已有该应用的进程(例:按back键、home键,应用虽然会退出,但是该应用的进程是依然会保留在后台,可进入任务列表查看),所以在已有进程的情况下,这种启动会从已有的进程中来启动应用,这个方式叫热启动。

特点:热启动因为会从已有的进程中来启动,所以热启动就不会走application这步了,而是直接走MainActivity(包括一系列的测量、布局、绘制),所以热启动的过程只需要创建和初始化一个MainActivity就行了,而不必创建和初始化application,因为一个应用从新进程的创建到进程的销毁,application只会初始化一次。

http://www.jb51.net/article/122034.htm
https://www.jianshu.com/p/33a798ac3298