从服务中获取有关当前显示活动的信息

时间:2013-07-13 16:39:14

标签: android service android-activity

我有一项服务,我想根据当前活动的活动采取不同的行为。

有没有办法识别设备上显示的活动?

如果是,如果我拥有当前活动:我的服务是否有办法与活动互动?我想要的是发送一个告诉它重绘地图的信号。

2 个答案:

答案 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中保存并更新标记,并在活动名称中使用您的活动名称,并在需要时从服务中获取此标记值。通过这种方式,您可以获得当前在设备上显示的活动,并且您可以执行任何您想要的任务或显示在那里。

希望这对你有所帮助。