在android工程中,我编写了一个回调函数。现在注入接口时,需要传递接口引用给另外一个进程。目前采取的方法是将该接口引用保存在application(commonData)中,但是从另外一个进程获取时,一直为空。后来才知是不同进程不能共享内存的问题,请Android高手指教如何解决。 
          // 进程1:注入回调接口
          commonData.setCallback(new MVS_CallBack() {
             // doing something
          }         // 进程2:获取接口引用
          commonData.getMVSCallBack();         // CommonData保存接口引用
        public class CommonData extends Application {
public static MVS_CallBack callback = null; // 设置回调接口
public void setMVSCallBack(MVS_CallBack callback) {
this.callback = callback;
} // 获取回调接口
public MVS_CallBack getMVSCallBack() {
return this.callback;
}
    
}

解决方案 »

  1.   

    隐约记得Android中的Handler可以解决进程数据共享问题
      

  2.   

    Parceable
    android为了进程共享而特别设计的接口,虽然实现起来比序列化要复杂,但开销要小得多。
    这东西可以通过Message传递。这东西的实质就是传递一个副本。虽然这东西一般用来传递数据,但回调函数也是没问题的。但是估计直接穿匿名类有点问题,你得先弄个有名有姓的类,然后继承Parceable接口就能安全传递了。
    实现这个接口的方法网上很多,你百度下就行。