我在AndroidManifest.xml中有我的服务的元数据。在活动中获取此元数据相当简单,因为您所要做的就是这样:
final Bundle data =
getPackageManager().getActivityInfo(this.getComponentName(), PackageManager.GET_META_DATA).metaData;
对于服务,我显然会使用'getServiceInfo()'方法而不是活动信息,但服务中没有'getComponentName()'方法。有什么理由不能提供这个吗?我是否必须在此构建自己的ComponentName对象?
由于
答案 0 :(得分:7)
ComponentName myService = new ComponentName(this, this.getClass());
Bundle data = getPackageManager().getServiceInfo(myService, PackageManager.GET_META_DATA).metaData;
答案 1 :(得分:1)
我是否必须在此构建自己的ComponentName对象?
AFAIK,是的。从Service
开始,new ComponentName(this, this.getClass())
应为您提供服务本身的ComponentName
。