2 csh 34 csh_34 于 2013.07.08 15:35 提问

A_app 单独启动 B_app

在 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,并且直接启动两个独立的程序。
如何实现?

2个回答

yongyong_21
yongyong_21   2013.07.09 17:17
已采纳

当从 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
    }
}
Jave_
Jave_   2013.07.08 15:43

如果我没有理解错的话,你是想一个app启动两个出来?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!