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

时间:2014-03-08 12:21:18

标签: android android-service

使用Android服务时遇到一些问题。我已经有一个从服务器下载文件的服务。 (服务检查循环以获取新数据)Aftwerwards它解析文件并将值添加到将保存到SharedPreferences的ArrayList。 在我的Activity中有两种方法。一个将显示UI中ArrayList / SharedPreferences的值,第二个方法根据需要设置通知。

但是,当我的服务完成任务以便可以启动这两种方法时,我该怎么办?

1 个答案:

答案 0 :(得分:1)

在您的活动中注册一个类似于:

的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);

如果您需要传递一些值,也可以在您的意图上添加以下内容:

文档BroadcastReceiver