add: script list remember sorting config

This commit is contained in:
hyb1996
2017-12-03 16:35:05 +08:00
parent 08571f409b
commit 56b5f5b6b8
7 changed files with 128 additions and 38 deletions

View File

@@ -16,7 +16,7 @@ public class Timers {
private SparseArray<Runnable> mHandlerCallbacks = new SparseArray<>();
private int mCallbackMaxId = 0;
private ScriptBridges mBridges;
private Handler mHandler;
private ThreadLocal<Handler> mHandler = new ThreadLocal<>();
private long mFutureCallbackUptimeMillis = 0;
public Timers(ScriptBridges bridges) {
@@ -24,8 +24,8 @@ public class Timers {
}
private void ensureHandler() {
if (mHandler == null) {
mHandler = new Handler();
if (mHandler.get() == null) {
mHandler.set(new Handler());
}
}
@@ -33,12 +33,9 @@ public class Timers {
ensureHandler();
mCallbackMaxId++;
final int id = mCallbackMaxId;
Runnable r = new Runnable() {
@Override
public void run() {
mBridges.callFunction(callback, null, args);
mHandlerCallbacks.remove(id);
}
Runnable r = () -> {
mBridges.callFunction(callback, null, args);
mHandlerCallbacks.remove(id);
};
mHandlerCallbacks.put(id, r);
postDelayed(r, delay);
@@ -69,7 +66,7 @@ public class Timers {
private void postDelayed(Runnable r, long interval) {
long uptime = SystemClock.uptimeMillis() + interval;
mHandler.postAtTime(r, uptime);
mHandler.get().postAtTime(r, uptime);
mFutureCallbackUptimeMillis = Math.max(mFutureCallbackUptimeMillis, uptime);
}
@@ -100,7 +97,7 @@ public class Timers {
private boolean clearCallback(int id) {
Runnable callback = mHandlerCallbacks.get(id);
if (callback != null) {
mHandler.removeCallbacks(callback);
mHandler.get().removeCallbacks(callback);
mHandlerCallbacks.remove(id);
return true;
}