【发布时间】:2012-08-09 08:15:37
【问题描述】:
我想调用一个可以在 Intent 中传递的类中的自定义方法。在 Intent 的接收方,我想调用该类的自定义方法。假设我有一个类扩展了 ResultReceiver 这两个方法
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) {
}
}
我想将 Intent 中的 MyClass 传递给另一个 Activity 或 Service。所以假设我将 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”类中的两个方法。最后调用“MyClass”中的 onReceiveResult() 但我无法调用我的自定义方法。我不想开始活动或服务。我想执行我的自定义方法。
我是否可以从 Service 或 Activity 中调用我的自定义方法,例如 ResultReceiver 的 onReceiveResult().??
【问题讨论】:
-
您将自己的方法添加到扩展 ResultReceiver 的类中。因为根据我的理解,扩展 ResultReceiver 的类就像回调一样使用。
标签: android service android-intent callback