在 B 的 manifest 中:
<activity android:name="BActivity" >
<intent-filter>
<action android:name="ACTION_TEST" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
還有一個全局變量。
A 的啟動代碼
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setComponent(new ComponentName("package name","package name.BActivity"));
startActivity(intent);
它可以啟動 B_app。
但是當我從 A 中啟動 B 時,並且通過點擊 B 的圖標來直接啟動 B 時,全局變量時相同的。
我想從 A 中啟動 B,並且直接啟動兩個獨立的程序。
如何實現?
當從 A 中啟動 Activity B時,你可以傳遞一些 boolean 值到B,說明它已經從 A 中啟動。
從B 中啟動 activity A:
Bundle b = new Bundle();
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setComponent(new ComponentName("package name", "package name.BActivity"));
b.putBoolean("fromA", true);
intent.putExtras(b);
startActivity(intent);
在 Activity B 中檢查在 onCreate() 中是否有 bundle。
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Bundle extras = getIntent().getExtras();
if (extras != null)
{
// Activity launched from Activity A
} else
{
// Actitivity launched from launcher
// clear the global variables
}
}