https://github.com/Gracker/DelayLoadSample
Android delay load sample
https://github.com/Gracker/DelayLoadSample
Last synced: 2 days ago
JSON representation
Android delay load sample
- Host: GitHub
- URL: https://github.com/Gracker/DelayLoadSample
- Owner: Gracker
- License: apache-2.0
- Created: 2015-12-16T06:46:16.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2020-02-25T07:01:24.000Z (over 6 years ago)
- Last Synced: 2026-01-23T01:50:00.331Z (5 months ago)
- Language: Java
- Homepage: https://www.androidperformance.com/2015/11/18/Android-app-lunch-optimize-delay-load/
- Size: 331 KB
- Stars: 61
- Watchers: 7
- Forks: 13
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DelayLoadSample
这是一篇 Android DelayLoad 的博文中所带的例子.
文章地址:
[Android 应用启动优化:一种 DelayLoad 的实现和原理(上篇)](https://www.androidperformance.com/2015/11/18/Android-app-lunch-optimize-delay-load/)
[Android 应用启动优化:一种 DelayLoad 的实现和原理(下篇)](https://www.androidperformance.com/2015/12/29/Android%E5%BA%94%E7%94%A8%E5%90%AF%E5%8A%A8%E4%BC%98%E5%8C%96-%E4%B8%80%E7%A7%8DDelayLoad%E7%9A%84%E5%AE%9E%E7%8E%B0%E5%92%8C%E5%8E%9F%E7%90%86-%E4%B8%8B%E7%AF%87/)
欢迎提出更好的思路大家一起讨论。
## 第一种写法:直接 Post
```java
myHandler.post(mLoadingRunnable);
```
## 第二种写法:直接 PostDelay 300ms.
```java
myHandler.postDelayed(mLoadingRunnable, DELAY_TIME);
```
## 第三种写法: 优化的 PostDelay ,两次进行 Delay Load
```java
getWindow().getDecorView().post(new Runnable() {
@Override
public void run() {
myHandler.post(mLoadingRunnable);
}
});
```
## 第四种写法(推荐):使用 IdleHandler 进行 Delay Load
```java
// 利用 IdleHandler
MessageQueue.IdleHandler idleHandler = new MessageQueue.IdleHandler() {
@Override
public boolean queueIdle() {
updateText();
return false;
}
};
Looper.myQueue().addIdleHandler(idleHandler);
```