mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-11 11:29:03 +08:00
Add GuardedRunnable to run blocks of code on the UI thread with automatic redboxing
Summary: Like GuardedAsyncTask, et al, but for Runnables. Reviewed By: achen1 Differential Revision: D4537287 fbshipit-source-id: 8ae60c7007843c0b7d8e5c3835d0847921fb3db5
This commit is contained in:
committed by
Facebook Github Bot
parent
a6e4977662
commit
08db896321
@@ -0,0 +1,28 @@
|
||||
// Copyright 2004-present Facebook. All Rights Reserved.
|
||||
|
||||
package com.facebook.react.bridge;
|
||||
|
||||
/**
|
||||
* Abstract base for a Runnable that should have any RuntimeExceptions it throws
|
||||
* handled by the {@link com.facebook.react.bridge.NativeModuleCallExceptionHandler} registered if
|
||||
* the app is in dev mode.
|
||||
*/
|
||||
public abstract class GuardedRunnable implements Runnable {
|
||||
|
||||
private final ReactContext mReactContext;
|
||||
|
||||
public GuardedRunnable(ReactContext reactContext) {
|
||||
mReactContext = reactContext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void run() {
|
||||
try {
|
||||
runGuarded();
|
||||
} catch (RuntimeException e) {
|
||||
mReactContext.handleException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public abstract void runGuarded();
|
||||
}
|
||||
Reference in New Issue
Block a user