在 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
}
}
如果我没有理解错的话,你是想一个app启动两个出来?