方法回调的方式:
- // activity 之间方法调用的桥梁
-
- public class ActivityCallBridge {
-
- static ActivityCallBridge mBridge;
-
- private OnMethodCallback mCallback;
-
- private ActivityCallBridge() {
-
- }
-
- public static ActivityCallBridge getInstance() {
- if (mBridge == null) {
- mBridge = new ActivityCallBridge();
- }
- return mBridge;
- }
-
- public void invokeMethod() {
- if (mCallback != null) {
- mCallback.doMethod();
- }
- }
-
- public void setOnMethodCallback(OnMethodCallback callback) {
- mCallback = callback;
- }
-
- public static interface OnMethodCallback {
- public void doMethod();
- }
-
- }
如果你要 B 去调用 A 的一个方法, 你可以让 A 实现 OnMethodCallback 接口,然后在 B 里面调用 invokeMethod 方法来完成回调:
- // A 实现调用接口
- public class AActivity extends Activity implements ActivityCallBridge.OnMethodCallback {
-
- private ActivityCallBridge mBridge;
-
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
-
- mBridge = ActivityCallBridge.getInstance();
- mBridge.setOnMethodCallback(this);
- }
-
- @Override
- public void doMethod() {
-
- }
- }
- //B 调用接口
- public class BActivity extends Activity {
- private ActivityCallBridge mBridge;
-
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
-
- mBridge = ActivityCallBridge.getInstance();
- mBridge.invokeMethod();
- }
- }