我有一项服务,我想根据当前活动的活动采取不同的行为。
有没有办法识别设备上显示的活动?
如果是,如果我拥有当前活动:我的服务是否有办法与活动互动?我想要的是发送一个告诉它重绘地图的信号。
答案 0 :(得分:1)
[EDITED]
请忽略我之前所说的内容 - 很多 更简单:
<强> 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
}
}
答案 1 :(得分:1)
您可以在每个活动的oncreate()的sharedpreferences中保存并更新标记,并在活动名称中使用您的活动名称,并在需要时从服务中获取此标记值。通过这种方式,您可以获得当前在设备上显示的活动,并且您可以执行任何您想要的任务或显示在那里。
希望这对你有所帮助。