0

私は Intent 呼び出しを介して画像機能をキャプチャすることに取り組んでいます。

非ActivityクラスからstartActivityforResultを実装することに成功しました。そこでアクティビティコンテキストを取得しています。

今、同じJavaクラスでonActivityResultを受け取りたいです。私が知っているように、このメソッドを受け取るにはActivityクラスが必須です。

それは可能でしょうか?

Java ProxyInvocationHandler リンクで呼び出そうとしましたが、成功しませんでした。

コード:

public class NovusAPI {

    private Context mContext;
    private NativeActivity nativeactivity;
    static final int REQUEST_IMAGE_CAPTURE = 1;

    /**
     * Constructor. Save reference to NativeActivity object
     **/
    NovusAPI(NativeActivity ref) {

        nativeactivity = ref;
        Log.d(TAG, "NovusAPI constructor called");

    }

    public void captureImage(){
            Log.d(TAG, "Image Capture Call");
            ContentValues values = new ContentValues();
            values.put(MediaStore.Images.Media.TITLE, "novus");
            values.put(MediaStore.Images.Media.DESCRIPTION, "novus camera capture");

            // capture image camera
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            nativeactivity.startActivityForResult(intent,REQUEST_IMAGE_CAPTURE);

       }

編集:

PreferenceManager Class:
  public interface OnActivityResultListener {

        /**
         * See Activity's onActivityResult.
         * 
         * @return Whether the request code was handled (in which case
         *         subsequent listeners will not be called.
         */
        boolean onActivityResult(int requestCode, int resultCode, Intent data);
    }

OnActivityResultListener は Android Preference クラスのインターフェースです。だから、私はこれに InvocationHanlder リンクに取り組む必要があります。

4

1 に答える 1

0

2 つのオプションがあります -

  1. NovusBaseActivityextendsを作成できます。Activity渡す必要はありませんcontext。でインNovusBaseActivityテントを開始し、で結果を取得できますonActivityResult。にアクティビティ コンテキストを渡す代わりにNovusAPI、 extendsを使用しNovusBaseActivityます。

  2. コメントの回答で示唆されているように、アクティビティでは、以前に作成したインスタンスを使用してonActivityResult結果処理メソッドを呼び出して呼び出します。NovusAPINovusAPIcaptureImage

于 2016-02-19T06:34:47.017 に答える