Android:跨應用啟動Activity
阿新 • • 發佈:2018-12-19
要實現跨應用啟動Activity,需要用到隱式Intent 比如要在應用A的MainActivity中啟動應用B的BeStartActivity,程式碼如下:
1.更改被啟動Activity的配置
開啟被啟動的應用B的配置檔案AndroidManifest.xml,更改BeStartActivity的配置,在<activity>標籤下新增<intent-filter>標籤,並在<intent-filter>標籤內新增兩個屬性:<categroy>和<action>
-
categroy表示當前動作執行的模式,預設為DEFAULT,這裡就用預設模式
-
action表示該Activity被啟動時的要呼叫名字,可以為任意值,但最好為"專案包名.intent.action.Activity類名",這裡我改為 “com.zs.appb.intent.action.BeStartActivity” 具體程式碼如下:
2.在應用A中用Intent啟動B應用的BeStartActivity
在例項化intent時傳入要啟動的Activity的action屬性的值,即之前設定的"com.zs.appb.intent.action.BeStartActivity" 程式碼如下:
Intent intent = new Intent();
intent=new Intent("com.zs.appb.intent.action.BeStartActivity");
startActivity(intent);
注意: 若不想Activity被其他應用啟動,只需要在AndroidManifest.xml檔案中設定android:exported=“false” 具體程式碼如下:
<activity android:name=".BeStartActivity" android:exported="false"> <intent-filter> <category android:name="android.intent.category.DEFAULT" /> <action android:name="com.zs.appb.intent.action.BeStartActivity" /> </intent-filter> </activity>