Android中Activity的Service回调

7qhs6swi  于 2023-06-27  发布在  Android
关注(0)|答案(3)|浏览(248)

我有一个我的GPSTracker的摘要。它返回用户的位置。它的作品。

  1. public class GPSTracker extends Service implements LocationListener {
  2. public GPSTracker(Context context) {
  3. this.mContext = context;
  4. getLocation();
  5. }
  6. public Location getLocation() {
  7. //GET LOCATION CODE
  8. return location;
  9. }

因此,我在MainActivity中使用以下代码调用此服务:

  1. gps = new GPSTracker(this, marker, googleMap, playbackService);

它得到了用户的实际位置。我想在“活动”上获取此位置。该服务需要将位置发送到我的活动。有人能帮我吗?

uajslkp6

uajslkp61#

根据您的需求,Activity和服务可以通过以下三种方式进行通信:
1)Broadcast receiver
2)Aidl – Android Interface Definition Language
3)Messenger
只需点击每种方法,看看哪一种符合您的需求。

ki0zmccv

ki0zmccv2#

您需要在Activity中创建一个BroadcastReceiver(确保在onResume()中注册它,并在onPause()中取消注册),并通过广播通知它,提供一个Intent
请参阅BroadcastReciever的文档(以及LocalBroadcastManager的文档,LocalBroadcastManager正是针对这种情况,其中广播是您自己的应用程序的本地广播)。
例如,您还应该阅读this answer

mec1mxoz

mec1mxoz3#

所有的解决方案来了这里是很好的选择,如果你想做一个界面有另一个创造性的解决方案.
1.创建SingleTone类,接口作为成员,该类将由服务通知,SingleTone类将在收到通知时触发接口。
1.随时随地观察该界面。
基本上,这个想法是使用SingleTone类作为桥梁。

相关问题