好的,这是我的理由。
我有活动A,B,C,D。它们按照A - >的顺序相互发起。 C - > D.B可与A互换(组合B - > C - > D同样可能)。我还有一个等待事件和另一个活动E的服务。当事件发生时,预期的行为取决于前景中的哪个活动:
欢迎使用更多通用解决方案(处理情况,如A - > C1 - > C2 - >; ......更改为A - > E),因为该应用程序将在未来进行扩展和新功能将被添加(他们的确切形状尚未确定)。
我已经在Android开发者网站上查看了Tasks and Back Stacks文档以及有关该主题的几个SO主题,但无法找到一个不错的解决方案。
有什么想法吗?
答案 0 :(得分:0)
你可以继承Application
并添加一些方法,如:
public static MyApplication getInstance() // returns a reference to the application
public void setForegroundActivity(Activity);
public Activity getForegroundActivity(); //
然后在您的活动'onResume()
方法中致电setForegroundActivity(this)
,并在onPause()
致电setForegroundActivity(null)
。
调用异步事件时,可以检查从getForegroundActivity()
返回的活动,并确定它是哪一个。您如何确定它是哪个活动取决于您(例如,您可以检查实例的类型)。