A_app在Android上独立启动B_app

时间:2013-01-17 03:32:33

标签: android android-intent manifest

在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个独立的应用程序 我该怎么做?

1 个答案:

答案 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
    }
}

如果从启动器启动,则可以清除全局变量。