0

Intent で渡せるクラスでカスタムメソッドを呼び出したい。Intent の受信側で、クラスのカスタム メソッドを呼び出したいと思います。ResultReceiver を拡張するクラスがあり、その 2 つのメソッドがあるとします。

class MyClass extends ResultReceiver {

    public doBefore(){ //custom method
        Log.d("sdf","before");
    }

    public doAfter(){  // custom method
        Log.d("sdf","After");
    }

    @Override
    public void onReceiveResult(final int resultCode,   final Bundle resultData) {

    }
}

インテントの MyClass を別のアクティビティまたはサービスに渡したいです。だから、MyClassをサービスに渡しているとしましょう

MyClass mcl = new MyClass()
final Intent intent = new Intent(mContext, MyService.class);
intent.putExtra(INTENT_EXTRA_RECEIVER, mcl);

MyService クラスでは、 onHandleIntent() メソッドでインテントを取得します。

MyService クラスのメソッド

@Override
protected void onHandleIntent(Intent intent) {
    MyClass eval = (MyClass) intent.getParcelableExtra(INTENT_EXTRA_RECEIVER);
    eval.doBefore(); // Is this possible??
    eval.doAfter(); 
    sendSuccess(intent, null);
}

ここで、クラス「MyClass」の 2 つのメソッドを実行したいと思います。「MyClass」の onReceiveResult() が最後に呼び出されますが、カスタム メソッドを呼び出すことができません。活動やサービスを開始したくありません。カスタムメソッドを実行したい。

ResultReceiver の onReceiveResult() のように、Service または Activity からカスタム メソッドを呼び出すことができる方法はありますか??

4

1 に答える 1

0

インテント コールを介してアクセスしようとするのは混乱しているように見えるため、質問を正しく理解しているかどうかはわかりません。以下のように単純に行うことはできませんか?

mcl.doBefore();
于 2012-08-09T08:26:28.053 に答える