Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ActivityEventListener不是抽象的,并且不重写抽象方法onNewIntent(Intent)_Java_Android_React Native - Fatal编程技术网

Java ActivityEventListener不是抽象的,并且不重写抽象方法onNewIntent(Intent)

Java ActivityEventListener不是抽象的,并且不重写抽象方法onNewIntent(Intent),java,android,react-native,Java,Android,React Native,当生成这是文件的完整源代码时,我收到此错误。。。。。。。。。。。。。。。。。。。。。。。。在下面 这是react native的插件 完全错误如下所示 local/Android/src/main/java/com/kmlidc/RNShareLocal/RNShareLocalManager.java:51:错误:RNShareLocalManager.RNShareLocalActivityEventListener不是抽象的,并且不重写ActivityEventListener中的抽象方法

生成
这是文件的完整源代码时,我收到此错误。。。。。。。。。。。。。。。。。。。。。。。。在下面
这是react native的插件

完全错误如下所示 local/Android/src/main/java/com/kmlidc/RNShareLocal/RNShareLocalManager.java:51:错误:RNShareLocalManager.RNShareLocalActivityEventListener不是抽象的,并且不重写ActivityEventListener中的抽象方法onNewIntent(Intent) 私有类RNShareLocalActivityEventListener实现ActivityEventListener{

^ 这是一个简单的社交分享插件

public class RNShareLocalManager extends ReactContextBaseJavaModule implements ActivityEventListener{
private ReactApplicationContext reactContext;
private Callback callback;

final int SHARE_REQUEST = 500;

public RNShareLocalManager(ReactApplicationContext reactContext) {
    super(reactContext);
    this.reactContext = reactContext;
    this.reactContext.addActivityEventListener(new RNShareLocalActivityEventListener());
}

@Override
public String getName() {
    return "RNShareLocal";
}

private class RNShareLocalActivityEventListener implements ActivityEventListener {
    public void onActivityResult(Activity activity, final int requestCode, final int resultCode, final Intent intent) {
        if (requestCode == SHARE_REQUEST) {
            callback.invoke("success");
        }
    }
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {

    }
}

public void onActivityResult(Activity activity, int requestCode, int resultCode, Intent data) {

}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {

}

public void onNewIntent(Intent intent) {

}

@ReactMethod
public void message(String winTitle,String subject,String message,ReadableArray component, Callback callback) {
    this.callback = callback;

    Intent intent=new Intent(Intent.ACTION_SEND);
    intent.putExtra(Intent.EXTRA_SUBJECT,subject);
    intent.putExtra(Intent.EXTRA_TEXT,message);
    intent.setType("text/plain");

    Intent chooser = Intent.createChooser(intent, winTitle);
    chooser.addCategory(Intent.CATEGORY_DEFAULT);

    //是否指定App打开
    if(component != null && component.size() == 2) {
        intent.setComponent(new ComponentName(component.getString(0), component.getString(1)));
    }

    getCurrentActivity().startActivityForResult(chooser,SHARE_REQUEST);
}

@ReactMethod
public void link(String winTitle,String subject,String url,ReadableArray component, Callback callback) {
    this.callback = callback;
    Intent intent=new Intent(Intent.ACTION_SEND);
    intent.putExtra(Intent.EXTRA_SUBJECT,subject);
    intent.putExtra(Intent.EXTRA_TEXT, url);
    intent.setType("text/html");

    Intent chooser = Intent.createChooser(intent, winTitle);
    chooser.addCategory(Intent.CATEGORY_DEFAULT);

    //是否指定App打开
    if(component != null && component.size() == 2) {
        intent.setComponent(new ComponentName(component.getString(0), component.getString(1)));
    }

    getCurrentActivity().startActivityForResult(chooser,SHARE_REQUEST);
}

@ReactMethod
public void pictures(String winTitle,String subject,String message,ReadableArray imagesFile,ReadableArray component, Callback callback) {
    this.callback = callback;
    ArrayList<Uri> uris = new ArrayList<Uri>();
    for(int i=0; i<imagesFile.size();i++){
        uris.add(Uri.parse(imagesFile.getString(i)));
    }
    Intent intent=new Intent(Intent.ACTION_SEND_MULTIPLE);
    intent.putExtra(Intent.EXTRA_SUBJECT,subject);
    intent.putExtra(Intent.EXTRA_TEXT, message);
    intent.putExtra(Intent.EXTRA_STREAM, uris);
    intent.putExtra ("Kdescription", message);
    intent.setType("image/*");

    Intent chooser = Intent.createChooser(intent, winTitle);
    chooser.addCategory(Intent.CATEGORY_DEFAULT);

    //是否指定App打开
    if(component != null && component.size() == 2) {
        intent.setComponent(new ComponentName(component.getString(0), component.getString(1)));
    }

    getCurrentActivity().startActivityForResult(chooser,SHARE_REQUEST);
}

@ReactMethod
public void downloadImage(ReadableArray imagesUrl, Promise promise){
    List<String> paths = new ArrayList<String>();
    for(int i=0; i<imagesUrl.size();i++){
        String imageUrl = imagesUrl.getString(i);
        String fileName = i + ".jpg";
        String path = this.download(imageUrl,fileName);
        paths.add(path);
    }

    JSONArray array = new JSONArray(paths);
    promise.resolve(array.toString());
}

//下载图片并保存
public String download( String imageUrl, String fileName) {
    final String savePath = getReactApplicationContext().getExternalCacheDir() + "/" + fileName;
    try {
        File f = new File(savePath);
        File dir = f.getParentFile();
        if(!dir.exists())
            dir.mkdirs();
        FileOutputStream os = new FileOutputStream(f);
        byte[] data = getImage(imageUrl);
        os.write(data);
        os.close();
    } catch (Exception e) {
        e.getLocalizedMessage();
    }

    return "file://" + savePath;
}

/*
* 获取网络图片
*/
public byte[] getImage(String imageUrl) throws Exception{
    URL url = new URL(imageUrl);
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    conn.setConnectTimeout(5 * 1000);
    conn.setRequestMethod("GET");
    InputStream inStream = conn.getInputStream();
    if(conn.getResponseCode() == HttpURLConnection.HTTP_OK){
        return readStream(inStream);
    }
    return null;
}


/*
获取图片流数据
 */
public static byte[] readStream(InputStream inStream) throws Exception{
    ByteArrayOutputStream outStream = new ByteArrayOutputStream();
    byte[] buffer = new byte[1024];
    int len = 0;
    while( (len=inStream.read(buffer)) != -1){
        outStream.write(buffer, 0, len);
    }
    outStream.close();
    inStream.close();
    return outStream.toByteArray();
}
公共类RNShareLocalManager扩展ReactContextBaseJavaModule实现ActivityEventListener{
私有ReactApplicationContext reactContext;
私有回调;
最终整数共享请求=500;
公共RNShareLocalManager(ReactApplicationContext reactContext){
超级(反应上下文);
this.reactContext=reactContext;
this.reactContext.addActivityEventListener(新的RNShareLocalActivityEventListener());
}
@凌驾
公共字符串getName(){
返回“RNShareLocal”;
}
私有类RNShareLocalActivityEventListener实现ActivityEventListener{
ActivityResult上的公共void(活动活动、最终int请求代码、最终int结果代码、最终意图){
if(requestCode==共享请求){
回调。调用(“成功”);
}
}
@凌驾
ActivityResult上的公共void(int请求代码、int结果代码、意图数据){
}
}
ActivityResult上的公共void(活动活动、int请求代码、int结果代码、意图数据){
}
@凌驾
ActivityResult上的公共void(int请求代码、int结果代码、意图数据){
}
公共帐篷(意向){
}
@反应法
公共无效消息(字符串winTitle、字符串主题、字符串消息、ReadableArray组件、回调){
this.callback=回调;
意向意向=新意向(意向.行动\发送);
意图.额外(意图.额外主题,主题);
intent.putExtra(intent.EXTRA_文本、消息);
intent.setType(“文本/普通”);
Intent chooser=Intent.createChooser(Intent,winTitle);
chooser.addCategory(Intent.CATEGORY\u默认值);
//是否指定应用程序打开
if(component!=null&&component.size()=2){
intent.setComponent(新组件名(component.getString(0)、component.getString(1));
}
getCurrentActivity().startActivityForResult(选择器,共享请求);
}
@反应法
公共无效链接(字符串winTitle、字符串主题、字符串url、ReadableArray组件、回调){
this.callback=回调;
意向意向=新意向(意向.行动\发送);
意图.额外(意图.额外主题,主题);
intent.putExtra(intent.EXTRA_文本,url);
intent.setType(“text/html”);
Intent chooser=Intent.createChooser(Intent,winTitle);
chooser.addCategory(Intent.CATEGORY\u默认值);
//是否指定应用程序打开
if(component!=null&&component.size()=2){
intent.setComponent(新组件名(component.getString(0)、component.getString(1));
}
getCurrentActivity().startActivityForResult(选择器,共享请求);
}
@反应法
公共无效图片(字符串winTitle、字符串主题、字符串消息、ReadableArray图像文件、ReadableArray组件、回调){
this.callback=回调;
ArrayList URI=新的ArrayList();

对于(int i=0;i请实现onNewIntent()


您需要覆盖那些重要的方法,即onNewIntent,即它们是该类的被覆盖方法


点击后会出现一个小灯泡的错误点,您可以实现所需的方法。

我已经尝试了,错误仍然显示,我将提供完整的源代码,您可以帮我看一下吗
private class RNShareLocalActivityEventListener implements ActivityEventListener {
    public void onActivityResult(Activity activity, final int requestCode, final int resultCode, final Intent intent) {
        if (requestCode == SHARE_REQUEST) {
            callback.invoke("success");
        }
    }
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {

    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
    }
}