标签:android global sandbox static-variables
一开始就快速注意避免错误的重复:这里有很多关于何时清除静态变量以及它们存活多久的问题.这不是我在这里问的问题.
如果我在PC上的程序中有一个静态变量,并且我启动了程序的两个不同副本,那么每个副本通常会在自己的沙箱中运行,并为其静态变量提供自己的私有值.因此,它们不是全系统的全球性(不确定这是否是好的术语).
在Android中是否存在我可以拥有静态变量的多个“实例”(松散地使用的单词)的情况?我不认为在不同的沙箱中并行运行多个Activity的副本是不可能的(虽然我不确定),但是ConentProviders,IntentServices或者其他可能从其他可能随机实例化的类中如何流程?
或者,换句话说,如果我有一个带有静态变量的类,我是否保证同一设备上同时存在的类的每个实例都可以访问完全相同的静态变量值?
解决方法:
在同一进程中运行的所有类都可以访问静态字段.如果Service,Application,BroadcastReceiver,ContentProvider或Activity在单独的进程中运行,那么它将具有不同的内存空间,因此不会看到来自其他进程的静态字段.您可以通过在AndroidManisfest中指定组件来强制组件在另一个进程上运行(例如android:process =“string”http://developer.android.com/guide/topics/manifest/receiver-element.html)
标签:android,global,sandbox,static-variables 来源: https://codeday.me/bug/20190623/1271397.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。