1. 程式人生 > >Android:跨應用啟動Activity

Android:跨應用啟動Activity

要實現跨應用啟動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>