【问题标题】:error: cannot find symbol finish(); in my own module错误:找不到符号完成();在我自己的模块中
【发布时间】:2019-10-22 13:02:30
【问题描述】:

我想从我自己的模块中访问 finish() 方法。但显示此错误:错误:找不到符号 完成();

如何从我自己的模块中访问 finish() 方法?

这是我的代码:


//ExitModule.java
package com.security_notifier;

import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;


public class ExitModule extends ReactContextBaseJavaModule {

    public ExitModule(ReactApplicationContext reactContext) {
        super(reactContext); //required by React Native
    }

    @Override
    //getName is required to define the name of the module represented in JavaScript
    public String getName() {
        return "Exit";
    }

    @ReactMethod
    public void finishApp() {
        finish();
    }
}

我是原生反应的新手。我非常需要你的帮助。

【问题讨论】:

  • 如果您想退出整个应用程序,请使用activity.finishAffinity(),否则如果您只有一个活动,请使用finish()

标签: java android java-module activity-finish


【解决方案1】:

这是我的 SplashActivity.java

package com.YOUR_NAME;

import android.content.Intent;
import android.os.Bundle;
//import android.support.v7.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatActivity;

public class SplashActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Intent intent = new Intent(this, MainActivity.class);
        startActivity(intent);
        finish();
    }
}

【讨论】:

    【解决方案2】:

    我已经解决了这个问题:

    //ExitModule.java
    package com.security_notifier;
    
    import com.facebook.react.bridge.ReactApplicationContext;
    import com.facebook.react.bridge.ReactContextBaseJavaModule;
    import com.facebook.react.bridge.ReactMethod;
    import com.facebook.react.bridge.ReactContext;
    import android.app.Activity;
    
    public class ExitModule extends ReactContextBaseJavaModule {
    
        private ReactContext mReactContext;
        public ExitModule(ReactApplicationContext reactContext) {
            super(reactContext); //required by React Native
            mReactContext = reactContext;
        }
    
    
        @Override
        //getName is required to define the name of the module represented in JavaScript
        public String getName() {
            return "Exit";
        }
    
        @ReactMethod
        public void finishApp() {
            Activity activity = mReactContext.getCurrentActivity();
            activity.finish();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2019-07-08
      • 1970-01-01
      • 2011-08-25
      • 1970-01-01
      • 2017-06-29
      • 2016-12-07
      • 2014-11-21
      • 1970-01-01
      • 2017-10-01
      相关资源
      最近更新 更多