国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

關于ComponentName的使用

2019-11-08 00:25:59
字體:
來源:轉載
供稿:網友

ComponentName,顧名思義,就是組件名稱,通過調用Intent中的setComponent方法,我們可以打開另外一個應用中的Activity或者服務。

實例化一個ComponentName需要兩個參數,第一個參數是要啟動應用的包名稱,這個包名稱是指清單文件中列出的應用的包名稱:

第二個參數是你要啟動的Activity或者Service的全稱(包名+類名),代碼如下:

啟動一個Activity:

[java] view plain copy PRint?Intent intent = new Intent();              intent.setComponent(new ComponentName("com.example.otherapp",                      "com.example.otherapp.MainActivity2"));              startActivity(intent);  

啟動一個Service:

[java] view plain copy print?Intent it = new Intent();  it.setComponent(new ComponentName("com.example.otherapp",          "com.example.otherapp.MyService"));  startService(it);  

注意

如果你要的啟動的其他應用的Activity不是該應用的入口Activity,那么在清單文件中,該Activity節點一定要加上Android:exported="true",表示允許其他應用打開,對于所有的Service,如果想從其他應用打開,也都要加上這個屬性:

[java] view plain copy print?<service      android:name="com.example.otherapp.MyService"      android:exported="true" >  </service>    <activity      android:name="com.example.otherapp.MainActivity2"      android:exported="true" >  </activity>  對于除了入口Activity之外的其他組件,如果不加這個屬性,都會拋出“java.lang.SecurityException: Permission Denial.....”異常

那么為什么入口Activity不用添加這個屬性就可以被其他應用啟動呢?我們來看一段入口Activity的注冊代碼:

[java] view plain copy print?<activity      android:name=".MainActivity"      android:label="@string/app_name" >      <intent-filter>          <action android:name="android.intent.action.MAIN" />            <category android:name="android.intent.category.LAUNCHER" />      </intent-filter>  </activity>  入口Activity和普通Activity唯一不同的地方就是入口Activity多了一個過濾器,對于包含了過濾器的組件,意味著該組件可以提供給外部的其他應用來使用,它的exported屬性默認為true,相反,如果一個組件不包含任何過濾器,那么意味著該組件只能通過指定明確的類名來調用,也就是說該組件只能在應用程序的內部使用,在這種情況下,exported屬性的默認值是false。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 闻喜县| 陇西县| 皮山县| 清远市| 丰原市| 祁阳县| 九龙坡区| 靖宇县| 北票市| 翼城县| 滨州市| 黄陵县| 托里县| 手游| 凤山市| 淄博市| 屏山县| 襄樊市| 甘泉县| 图木舒克市| 龙井市| 广德县| 临潭县| 合阳县| 龙州县| 高邑县| 苏尼特右旗| 永城市| 吉首市| 射阳县| 文水县| 海丰县| 忻州市| 轮台县| 蒲城县| 晋江市| 正安县| 徐闻县| 龙陵县| 赤壁市| 彭泽县|