0

在 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 时,它们之间的全局变量是相同的。
我想从 A 启动并直接启动的 B 是 2 个独立的应用程序。
我该怎么做?

4

1 回答 1

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

如果它是从启动器启动的,那么您可以清除全局变量。

于 2013-01-17T03:46:45.723 回答