1. 程式人生 > >Activity C中關閉Activity A的方法

Activity C中關閉Activity A的方法

在A裡面設定一個靜態的變數instance,初始化為this
在C裡面,A.instance.finish()

如果原生專案接入RN專案後,怎麼關閉RN介面呢?
道理和上述方法一樣:
在RN介面呼叫原生方法,在原生方法中使用上訴方法即可。
程式碼如下:
RN介面新增點選方法:方法的內容為呼叫原生方法

<TouchableOpacity onPress={this.onPressOut.bind(this)}>
            <Text style={styles.welcome}>
             退出
            </Text
>
</TouchableOpacity> onPressOut() { NativeModules.commModule.rnCallNativeOut(); }

啟動RN介面,設定一個靜態的變數instance,初始化為this
,方便其他介面呼叫finish

public class MainActivity extends ReactActivity {
    public static MainActivity mainActivity;

    @Override
    protected void onCreate
(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mainActivity=this; } //構建一個阻塞的單一資料的佇列 public static ArrayBlockingQueue<String> mQueue = new ArrayBlockingQueue<String>(1); /** * Returns the name of the main component registered from JavaScript. * This is used to schedule rendering of the component. */
@Override protected String getMainComponentName() { return "RNTestTwoDemo"; } public static MainActivity indecnce(){ return mainActivity; } }

在繼承ReactContextBaseJavaModule的Module類中定義下面方法,RN介面呼叫該方法就可以關閉RN介面了。

   @ReactMethod
    public void rnCallNativeOut() {
        Log.d("xxx","sssss");
        MainActivity.mainActivity.finish();
    }