Summary: Similar to constructor established attributes, we do the same here for static initializers. That is, attributes of static properties are injected into the initial state of every method. Reviewed By: ezgicicek Differential Revision: D18763192 fbshipit-source-id: 3879a27c5master
parent
23b2dcf753
commit
1c0e42bf3f
@ -0,0 +1,66 @@
|
||||
/*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
import android.os.Binder;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.RemoteException;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
class StaticInitAttributes {
|
||||
static Binder binder;
|
||||
|
||||
private static void doTransact() {
|
||||
try {
|
||||
binder.transact(0, null, null, 0);
|
||||
} catch (RemoteException e) {
|
||||
}
|
||||
}
|
||||
|
||||
@ForUiThread static Executor mUiThreadExecutor = null;
|
||||
|
||||
static Executor mUiExecutor;
|
||||
static Executor mNonUiExecutor;
|
||||
static Handler mUiHandler;
|
||||
static Runnable mBadRunnable;
|
||||
static Runnable mOkRunnable;
|
||||
|
||||
static {
|
||||
mUiExecutor = mUiThreadExecutor;
|
||||
mNonUiExecutor = Executors.getBackgroundExecutor();
|
||||
mUiHandler = new Handler(Looper.getMainLooper());
|
||||
mBadRunnable =
|
||||
new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
doTransact();
|
||||
}
|
||||
};
|
||||
|
||||
mOkRunnable =
|
||||
new Runnable() {
|
||||
@Override
|
||||
public void run() {}
|
||||
};
|
||||
}
|
||||
|
||||
public void postBlockingCallToUIExecutorBad() {
|
||||
mUiExecutor.execute(mBadRunnable);
|
||||
}
|
||||
|
||||
public void postNoopCallToUIExecutorOk() {
|
||||
mUiExecutor.execute(mOkRunnable);
|
||||
}
|
||||
|
||||
public void postBlockingCallToNonUIExecutorOk() {
|
||||
mNonUiExecutor.execute(mBadRunnable);
|
||||
}
|
||||
|
||||
public void postBlockingCallToUIHandlerBad() {
|
||||
mUiHandler.post(mBadRunnable);
|
||||
}
|
||||
}
|
Loading…
Reference in new issue