我正在将Android C2DM添加到AndroID库项目中.我从JumpNote和Chrome To Phone附带的com.google.android.c2dm package开始.为了使用此程序包,必须子类化C2DMBaseReceiver服务,该服务将Sender ID作为其构造函数的参数.在JumpNote中,此参数是使用config类中的硬编码静态变量初始化的.但是,在一个可能由多个同时运行的应用程序使用的AndroID库项目中,我认为我不能使用硬编码的静态变量(也就是说,我相信当/如果多个应用程序试图访问/修改静态变量).
我尝试过一种无需使用静态变量即可初始化发件人ID的方法,到目前为止,它已陷入困境.
显而易见的解决方案是使用清单或资源字符串或两者的组合.例如,在strings.xml中,我可能有一个“ ac2dmSender”字符串,可以在C2DMReceiver服务声明的元数据子元素中访问该字符串.在清单中.但是,似乎您无法从静态上下文中获取对PackageManager或ResourceManager的引用,因此,我无法以这种方式检索元数据并将其传递给C2DMBaseReceiver的构造函数.
请让我知道我缺少什么!提前致谢.
解决方法:
我们有同样的问题.
我们通过使用资产文件夹下的属性文件解决了该问题.
可以通过使用静态配置帮助程序类来静态加载属性.
第一次加载应用程序时,可以使用Application上下文获取属性文件.
例如:
1.初始化静态配置
公共无效onCreate(捆绑保存的InstanceState){
super.onCreate(savedInstanceState);
myConfig =新的WLConfig(getApplication());
}
>然后在配置类中使用:
myPropertIEs.load(context.getAssets().open(“ myclIEnt.propertIEs”));
>并获取发件人电子邮件:
返回myPropertIEs.getProperty(WL_C2DM_SENDER)
以上是内存溢出为你收集整理的如何在不使用静态变量中使用硬编码值的情况下初始化Android C2DM的发件人ID?全部内容,希望文章能够帮你解决如何在不使用静态变量中使用硬编码值的情况下初始化Android C2DM的发件人ID?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)