在B的清单中如下:
<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时,全局变量在它们之间是相同的 我希望B从A推出并直接推出2个独立的应用程序 我该怎么做?
答案 0 :(得分:1)
当您从A中释放活动B时,您可以将一些布尔值传递给B,说明它已从A启动。例如,从B启动您的活动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);
然后在您的活动B中,检查onCreate()
中是否有任何捆绑包,如下所示
@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
}
}
如果从启动器启动,则可以清除全局变量。