我有一项服务,我希望根据当前处于活动状态的活动采取不同的行为。
有什么方法可以识别设备上显示的活动?
如果是这样并且如果我拥有当前活动:我的服务是否有任何方式与活动交互?我想要的是发送一个信号告诉它重新绘制地图。
我有一项服务,我希望根据当前处于活动状态的活动采取不同的行为。
有什么方法可以识别设备上显示的活动?
如果是这样并且如果我拥有当前活动:我的服务是否有任何方式与活动交互?我想要的是发送一个信号告诉它重新绘制地图。
您可以在每个活动的 oncreate() 上的 sharedpreferences 中使用您的活动名称保存和更新“CURRENT_ACTIVITY”标签,并在需要时从您的服务中获取此标签值。通过这种方式,您可以获得当前在设备上显示的活动,并且您可以做任何您想做的事情或在那里显示。
希望这对您有所帮助。
[编辑]
请忽略我之前所说的 - 有更简单的方法:
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
}
}