Skip to content

Commit 2f38967

Browse files
committed
优化框架获取 Toast 默认延迟时间的方式
1 parent f6c4cf8 commit 2f38967

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

library/src/main/java/com/hjq/toast/ToastStrategy.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,6 @@ public class ToastStrategy implements IToastStrategy {
5151
/** Handler 对象 */
5252
private static final Handler HANDLER = new Handler(Looper.getMainLooper());
5353

54-
/**
55-
* 默认延迟时间
56-
*
57-
* 延迟一段时间之后再执行,因为在没有通知栏权限的情况下,Toast 只能显示在当前 Activity 上面
58-
* 如果当前 Activity 在 showToast 之后立马进行 finish 了,那么这个时候 Toast 可能会显示不出来
59-
* 因为 Toast 会显示在销毁 Activity 界面上,而不会显示在新跳转的 Activity 上面
60-
*/
61-
private static final int DEFAULT_DELAY_TIMEOUT = 200;
62-
6354
/** 应用上下文 */
6455
private Application mApplication;
6556

@@ -140,13 +131,13 @@ public void showToast(ToastParams params) {
140131
case SHOW_STRATEGY_TYPE_IMMEDIATELY: {
141132
// 移除之前未显示的 Toast 消息
142133
cancelToast();
143-
long uptimeMillis = SystemClock.uptimeMillis() + params.delayMillis + (params.crossPageShow ? 0 : DEFAULT_DELAY_TIMEOUT);
134+
long uptimeMillis = SystemClock.uptimeMillis() + params.delayMillis + (params.crossPageShow ? 0 : getDefaultDelayTime());
144135
HANDLER.postAtTime(new ShowToastRunnable(params), mShowMessageToken, uptimeMillis);
145136
break;
146137
}
147138
case SHOW_STRATEGY_TYPE_QUEUE: {
148139
// 计算出这个 Toast 显示时间
149-
long showToastMillis = SystemClock.uptimeMillis() + params.delayMillis + (params.crossPageShow ? 0 : DEFAULT_DELAY_TIMEOUT);
140+
long showToastMillis = SystemClock.uptimeMillis() + params.delayMillis + (params.crossPageShow ? 0 : getDefaultDelayTime());
150141
// 根据吐司的长短计算出等待时间
151142
long waitMillis = generateToastWaitMillis(params);
152143
// 如果当前显示的时间在上一个 Toast 的显示范围之内
@@ -201,6 +192,16 @@ protected int generateToastWaitMillis(ToastParams params) {
201192
return 0;
202193
}
203194

195+
/**
196+
* 获取默认延迟时间
197+
*/
198+
protected int getDefaultDelayTime() {
199+
// 延迟一段时间之后再执行,因为在没有通知栏权限的情况下,Toast 只能显示在当前 Activity 上面
200+
// 如果当前 Activity 在 showToast 之后立马进行 finish 了,那么这个时候 Toast 可能会显示不出来
201+
// 因为 Toast 会显示在销毁 Activity 界面上,而不会显示在新跳转的 Activity 上面
202+
return 200;
203+
}
204+
204205
/**
205206
* 显示任务
206207
*/

0 commit comments

Comments
 (0)