内容简介:看到《Android开发艺术探索》书中 P241 页提到RemoteViews跨进程资源访问的限制,我在跨进程的实际使用时,证实是没有限制的,可以跨进程使用,RemoteViews源码如下:RemoteViews实例化的时候会保存一个mApplication的变量,用于跨进程访问资源。感谢网友
看到《Android开发艺术探索》书中 P241 页提到RemoteViews跨进程资源访问的限制,我在跨进程的实际使用时,证实是没有限制的,可以跨进程使用,RemoteViews源码如下:
public RemoteViews(String packageName, int layoutId) { this(getApplicationInfo(packageName, UserHandle.myUserId()), layoutId); } protected RemoteViews(ApplicationInfo application, int layoutId) { mApplication = application; ... } 复制代码
RemoteViews实例化的时候会保存一个mApplication的变量,用于跨进程访问资源。
/** @hide */ public View apply(Context context, ViewGroup parent, OnClickHandler handler) { ... final Context contextForResources = getContextForResources(context); Context inflationContext = new ContextWrapper(context) { @Override public Resources getResources() { return contextForResources.getResources(); } @Override public Resources.Theme getTheme() { return contextForResources.getTheme(); } @Override public String getPackageName() { return contextForResources.getPackageName(); } }; LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); ... } private Context getContextForResources(Context context) { if (mApplication != null) { if (context.getUserId() == UserHandle.getUserId(mApplication.uid) && context.getPackageName().equals(mApplication.packageName)) { return context; } try { return context.createApplicationContext(mApplication, Context.CONTEXT_RESTRICTED); } catch (NameNotFoundException e) { Log.e(LOG_TAG, "Package name " + mApplication.packageName + " not found"); } } return context; } 复制代码
感谢网友 magazmj@gmail.com
的反馈,希望对大家有所帮助。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 使用AIDL实现跨进程接口回掉
- 「iOS 面试之道」勘误(二)
- Shadow的跨进程设计与插件Service原理
- wukongqueue:轻量且易于使用的跨进程队列服务
- 如何在 macOS 中使用 XPC 实现跨进程通讯?
- Asciinema 文章勘误及 Web 端使用介绍
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
JavaScript语言精粹
Douglas Crockford / 赵泽欣、鄢学鹍 / 电子工业出版社 / 2009-4 / 35.00元
本书通过对JavaScript语言的分析,甄别出好的和坏的特性,从而提取出相对这门语言的整体而言具有更好的可靠性、可读性和可维护性的JavaScript的子集,以便你能用它创建真正可扩展的和高效的代码。 雅虎资深JavaScript架构师Douglas Crockford倾力之作。 向读者介绍如何运用JavaScript创建真正可扩展的和高效的代码。一起来看看 《JavaScript语言精粹》 这本书的介绍吧!