2

我有一项服务,我希望根据当前处于活动状态的活动采取不同的行为。

有什么方法可以识别设备上显示的活动?

如果是这样并且如果我拥有当前活动:我的服务是否有任何方式与活动交互?我想要的是发送一个信号告诉它重新绘制地图。

4

2 回答 2

1

您可以在每个活动的 oncreate() 上的 sharedpreferences 中使用您的活动名称保存和更新“CURRENT_ACTIVITY”标签,并在需要时从您的服务中获取此标签值。通过这种方式,您可以获得当前在设备上显示的活动,并且您可以做任何您想做的事情或在那里显示。

希望这对您有所帮助。

于 2013-07-13T17:41:51.213 回答
1

[编辑]

请忽略我之前所说的 - 有简单的方法:

1.在你的包Info.java 中新建一个Java类

package com.your.package.name;
import android.app.Activity;

public class Info {
static Class<? extends Activity> active = null;
}


2.将此行添加到onResume()您拥有的每个活动的方法中:

Info.active = this.getClass();


3.将这些行添加到onStop()您拥有的每个活动的方法中:

if(Info.active == this.getClass())
   Info.active = null;


4.现在为您服务:

if(Info.Active != null){
if (Info.active == MainActivity.class){
  // code that runs when MainActivity is active HERE

} else if (Info.active == SecondActivity.class){
  // code that runs when SecondActivity is active HERE

}
}
于 2013-07-13T16:43:55.377 回答