mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-09 22:43:10 +08:00
remove activities from module constructors
Summary: Refactor modules that take activities (or activities that implement some interface) as constructor args to not do that. Expose `getCurrentActivity()` in `ReactContext` and use that wherever the activity is needed. public Reviewed By: astreet Differential Revision: D2680462 fb-gh-sync-id: f263b3fe5b422b7aab9fdadd051cef4e82797b0a
This commit is contained in:
committed by
facebook-github-bot-9
parent
7ab17e5ef3
commit
c06efc0831
@@ -9,6 +9,10 @@
|
||||
|
||||
package com.facebook.react.bridge;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import android.app.Activity;
|
||||
|
||||
/**
|
||||
* Base class for Catalyst native modules that require access to the {@link ReactContext}
|
||||
* instance.
|
||||
@@ -27,4 +31,17 @@ public abstract class ReactContextBaseJavaModule extends BaseJavaModule {
|
||||
protected final ReactApplicationContext getReactApplicationContext() {
|
||||
return mReactApplicationContext;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the activity to which this context is currently attached, or {@code null} if not attached.
|
||||
*
|
||||
* DO NOT HOLD LONG-LIVED REFERENCES TO THE OBJECT RETURNED BY THIS METHOD, AS THIS WILL CAUSE
|
||||
* MEMORY LEAKS.
|
||||
*
|
||||
* For example, never store the value returned by this method in a member variable. Instead, call
|
||||
* this method whenever you actually need the Activity and make sure to check for {@code null}.
|
||||
*/
|
||||
protected @Nullable final Activity getCurrentActivity() {
|
||||
return mReactApplicationContext.getCurrentActivity();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user