我正在开发一个地铁指南应用程序,当到达新工作站时,会弹出一个通知,主活动中显示的地图将刷新。我将指南代码放在一个服务中,以便用户可以在被引导的同时运行其他应用程序。但是当到达新站时,主要活动需要刷新,服务如何对主要活动中的视图进行一些更改?
答案 0 :(得分:1)
在您的活动中,您应该注册一个接收器
首先声明接收器
public class ReceiverTest extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
// extras from service
int key = intent.getIntExtra("key", 0);
//do things here
}
}
在活动的OnCreate中注册
ReceiverTest mReceiver = new ReceiverTest();
IntentFilter filter;
filter = new IntentFilter("packagename.dosomething");
registerReceiver(mReceiver, filter);
然后,在您的服务中,广播事件
Intent i = new Intent("packagename.dosomething");
// You could put the information in extras, then get the value in receiver
i.putExtra("key", 123);
context.sendBroadcast(i);
答案 1 :(得分:1)
有几种方法可以做到这一点。 您可以将服务与活动绑定。 您可以向活动发送广播消息(活动需要向广播接收者注册) 关于这个主题有很多讨论。你可以通过它们。
答案 2 :(得分:-1)