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 からカスタム メソッドを呼び出すことができる方法はありますか??