Run ROOM queries/transaction at foreground priority

pull/156/head
M66B 6 years ago
parent 3205db6798
commit 9c7399c9e7

@ -92,7 +92,7 @@ public abstract class DB extends RoomDatabase {
public abstract DaoLog log(); public abstract DaoLog log();
private static DB sInstance; private static DB sInstance;
private static ExecutorService executor = Executors.newCachedThreadPool(Helper.backgroundThreadFactory); private static ExecutorService executor = Executors.newCachedThreadPool(Helper.foregroundThreadFactory);
private static final String DB_NAME = "fairemail"; private static final String DB_NAME = "fairemail";

@ -105,12 +105,23 @@ public class Helper {
@Override @Override
public Thread newThread(@NonNull Runnable runnable) { public Thread newThread(@NonNull Runnable runnable) {
Thread thread = new Thread(runnable); Thread thread = new Thread(runnable);
thread.setName("FairEmail_" + threadId.getAndIncrement()); thread.setName("FairEmail_bg_" + threadId.getAndIncrement());
thread.setPriority(THREAD_PRIORITY_BACKGROUND); thread.setPriority(THREAD_PRIORITY_BACKGROUND);
return thread; return thread;
} }
}; };
static ThreadFactory foregroundThreadFactory = new ThreadFactory() {
private final AtomicInteger threadId = new AtomicInteger();
@Override
public Thread newThread(@NonNull Runnable runnable) {
Thread thread = new Thread(runnable);
thread.setName("FairEmail_fg_" + threadId.getAndIncrement());
return thread;
}
};
// Features // Features
static boolean hasPermission(Context context, String name) { static boolean hasPermission(Context context, String name) {

Loading…
Cancel
Save