Android 如何让活动知道循环服务已经完成了一次任务?

Android 如何让活动知道循环服务已经完成了一次任务?,android,android-service,Android,Android Service,我在使用Android服务时遇到了一些问题。我已经有了一个从服务器下载文件的服务。(该服务检查是否有新数据)Werwards解析文件并将值添加到ArrayList,ArrayList将保存到SharedReferences。 在我的活动中有两种方法。其中一个方法将在UI中显示ArrayList/SharedReferences中的值,第二个方法将根据需要设置通知 但是,当我的服务完成任务后,我该如何启动这两种方法呢?在您的活动中注册一个BroadcastReceiver,例如: myReceiv

我在使用Android服务时遇到了一些问题。我已经有了一个从服务器下载文件的服务。(该服务检查是否有新数据)Werwards解析文件并将值添加到ArrayList,ArrayList将保存到SharedReferences。 在我的活动中有两种方法。其中一个方法将在UI中显示ArrayList/SharedReferences中的值,第二个方法将根据需要设置通知


但是,当我的服务完成任务后,我该如何启动这两种方法呢?

在您的活动中注册一个BroadcastReceiver,例如:

myReceiver = new BroadcastReceiver() {
   @Override
   public void onReceive(Context context, Intent intent) {
                 // do my stuff
   }
};
registerReceiver(myReceiver , new IntentFilter("com.myapp.DOWNLOADCOMPLETE"));
然后在您的服务中发送广播:

Intent i = new Intent("com.myapp.DOWNLOADCOMPLETE");
sendBroadcast(i);
如果需要传递某些值,也可以在意图上添加额外内容:


文档

我还需要做什么?例如,在文件中注册?我通过
Intent Intent=newintent(这个,MyService.class)启动我的服务
启动服务(意图)
服务已经注册。您哪里有问题?BroadcasrReceiver
可以工作…但是我的代码中还有一个bug。我创建了一个新问题:www.stackoverflow.com/questions/22283004