exported组件属性怎么用

来源:互联网转载和整理 2024-05-17 08:33:12

exported

exported是什么

android:exported是Android中的四大组件Activity,Service,Provider,Receiver四大组件中都会有的一个属性。

总体来说它的主要作用是:是否支持其它应用调用当前组件。

默认值:如果包含有intent-filter默认值为true;没有intent-filter默认值为false。

exported组件属性

下面来详细的了解一下组件中的这个属性:

1、先来看:Activity中的:

<activity

……

android:exported=["true"|"false"]

……

/>

意思如下:

在Activity中该属性用来标示:当前Activity是否可以被另一个Application的组件启动:true允许被启动;false不允许被启动。

如果被设置为了false,那么这个Activity将只会被当前Application或者拥有同样userID的Application的组件调用。

exported的默认值根据Activity中是否有intentfilter来定。没有任何的filter意味着这个Activity只有在详细的描述了他的classname后才能被唤醒.这意味着这个Activity只能在应用内部使用,因为其它application并不知道这个class的存在。所以在这种情况下,它的默认值是false。从另一方面讲,如果Activity里面至少有一个filter的话,意味着这个Activity可以被其它应用从外部唤起,这个时候它的默认值是true。

2、Service中的:

<serviceandroid:enabled=["true"|"false"]

android:exported=["true"|"false"]

android:icon="drawableresource"

android:isolatedProcess=["true"|"false"]

android:label="stringresource"

android:name="string"

android:permission="string"

android:process="string">

...

</service>