我有一个我的GPSTracker的摘要。它返回用户的位置。它的作品。
public class GPSTracker extends Service implements LocationListener {
public GPSTracker(Context context) {
this.mContext = context;
getLocation();
}
public Location getLocation() {
//GET LOCATION CODE
return location;
}
因此,我在MainActivity中使用以下代码调用此服务:
gps = new GPSTracker(this, marker, googleMap, playbackService);
它得到了用户的实际位置。我想在“活动”上获取此位置。该服务需要将位置发送到我的活动。有人能帮我吗?
3条答案
按热度按时间uajslkp61#
根据您的需求,Activity和服务可以通过以下三种方式进行通信:
1)Broadcast receiver
2)Aidl – Android Interface Definition Language
3)Messenger
只需点击每种方法,看看哪一种符合您的需求。
ki0zmccv2#
您需要在Activity中创建一个
BroadcastReceiver
(确保在onResume()
中注册它,并在onPause()
中取消注册),并通过广播通知它,提供一个Intent
。请参阅
BroadcastReciever
的文档(以及LocalBroadcastManager
的文档,LocalBroadcastManager
正是针对这种情况,其中广播是您自己的应用程序的本地广播)。例如,您还应该阅读this answer。
mec1mxoz3#
所有的解决方案来了这里是很好的选择,如果你想做一个界面有另一个创造性的解决方案.
1.创建SingleTone类,接口作为成员,该类将由服务通知,SingleTone类将在收到通知时触发接口。
1.随时随地观察该界面。
基本上,这个想法是使用SingleTone类作为桥梁。