2016-12-21 17 views
0

したがって、 私はActionを介して別のアクティビティを開始し、その答えを待つコードバプラグインを作成しています。問題は、他のアクティビティが終了する前にonActivityResultメソッドが呼び出されていることです。 Plugin.java(Cordovaプラグインの作成)他のアクティビティが完了する前にOnActivityの結果が呼び出されます

public class Plugin extends CordovaPlugin { 
    CallbackContext mCallbackContext = null; 

    @Override public boolean execute(String action, JSONArray args, CallbackContext callbackContext) { 
     mCallbackContext = callbackContext; 
     this.cordova.setActivityResultCallback(this); 
     Intent intent = new Intent(); 
     intent.setAction("com.myaction"); 
     this.cordova.startActivityForResult(this, intent, intent.getAction().hashCode()); 
    } 

    @Override public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
     super.onActivityResult(requestCode, resultCode, intent); 
     Toast.makeText(this.cordova.getActivity(), "Result came " + resultCode, Toast.LENGTH_SHORT).show(); 
     mCallbackContext.sendPluginResult (new PluginResult (PluginResult.Status.OK)); 
    } 
} 

は、基本的にはアクションを経由して活動を開始し、新しいアクティビティが実行されている間、onActivityResultresultCode = 0と呼ばれています。

他のアクティビティの終了後にonActivityResultを呼び出すにはどうすればよいですか?

答えて

1

私はこの間数日間苦労しています!私のケースでは、startActivityForResultメソッドを実行したアクティビティがsingleInstanceとして開始され、同じタスクで他のアクティビティを開始できないため、このようなシナリオが発生したため、開始されたアクティビティは別のタスクで実行されていました。なぜonActivityResultメソッドがstartActivityForResultメソッドの直後に起動されたのですか?それが役に立てば幸い!

関連する問題