代码之家  ›  专栏  ›  技术社区  ›  Tom Taylor

实例变量的内存如何在Android应用程序中的进程之间共享?

  •  0
  • Tom Taylor  · 技术社区  · 6 年前

    我有一个单身班,看起来像这样,

    public class MyHomeFactory {
    
        public static final String TAG = "sddsd";
        private static MyHomeFactory myHomeFactory = null;
    
        private MyHomeFactory() {
            Log.i(TAG, "Inside my home factory");
        }
    
        public static MyHomeFactory getInstance() {
            if(myHomeFactory == null) {
                myHomeFactory = new MyHomeFactory();
            }
            return myHomeFactory;
        }
    }
    

    我在调用我的家庭工厂。getInstance()在我的应用程序类和我的服务类(在不同的进程下运行)中类似这样的内容,

    public class CornetApplication extends Application {
        @Override
        public void onCreate() {
            super.onCreate();
            Log.i(TAG, "The value of instance is : " + MyHomeFactory.getInstance());
        }
    }
    

    从内部服务来看 onBind 喜欢

    @Override
        public IBinder onBind(Intent intent) {
            return new IMyAidlInterface.Stub() {
                @Override
                public void printTime(long time) throws RemoteException {
                    Log.i(TAG, "Instance value is : " + MyHomeFactory.getInstance());
                }
            };
        }
    

    AndroidManifest中的服务声明如下所示,

    <service
                android:name=".OnDisConnectedService"
                android:enabled="true"
                android:exported="true"
                android:process=":separate_process"/>
    

    令我惊讶的是,实例值都是这样打印的,

    通用域名格式。实例大约。MyHomeFactory@63b959e

    代替 getInstance() .进程之间如何共享此实例?我在这里感到困惑。

    0 回复  |  直到 6 年前
    推荐文章