2012-06-24 25 views
0

我有两个Android应用程序 - A和B.意图的活动被忽略

应用程序B有两个活动,它的发射活动,我们称之为活动1,而另一个我们会打电话给活动2.

应用程序需要以任意顺序每次多次调用应用程序B的活动。

什么,我虽然发现的是,如果我叫活动2(从应用程序A),然后再打活动1 - 这工作。

什么不工作是当我需要随时打电话给活动2后,我已经叫活动1.

当我这样做,我总是得到活动1不管。

望着日志,我可以看到ActivityManager正在接收与活动2正确的组件名,我在我的应用程序A代码已经设置的意图 - 但它毕竟还是解析为活动1.

唯一有效的是当我在Activity 1的onPause()方法中调用finish()时。如果我这样做 - Application A可以同时调用Application B的所有活动。

这不是一般的好解决方案,但它绝对不适合我,因为我试图定义与应用程序A的整合模式的预先存在的应用程序(App B就在这种情况下)可以遵循的解决方案。

有没有什么办法可以改变这个结果被我称之为应用B的应用程序从一个活动(而不是修改应用程序B的活动配置)的方式。

目前,我叫两个活动1,并通过他们的组件名称活动2所示:

Intent i = new Intent(Intent.ACTION_MAIN); 
i.addCategory(Intent.CATEGORY_LAUNCHER); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); 
intent.setComponent(name); 
context.startActivity(intent); 

唯一的区别是,对于非发射活动(活动2)我使用的动作视图和类别默认(与上面的MAIN和LAUNCHER相比)。

显然活动2还需要一个意图过滤器,结合匹配 - 但假设它确实..

有什么建议?

回答

1

难道你已经有一个看看不同Activity attibutes? android:finishOnTaskLaunch在我看来,如果它可以帮助。

见在Developers Guide的完整列表。