[英]How to use an intent to update an activity?
我有一个正在下载文件的服务。 下载完成后,我想在我的Activity
更新我的“已下载文件”列表,但仅在Activity
正在运行时。 如果Activity
尚未运行,我不希望它启动。
我希望通过制作一个带有特殊标志的新Intent
来做到这一点。
任何人都知道如何实现这一目标? 一个很小的代码示例可能?
您可以在Activity的onResume()方法上创建新的BroadcastReceiver实例并沿着这些行执行某些操作:
registerReceiver(myReceiver, new IntentFilter(DownloadService.ACTION_FILE_DOWNLOADED));
之后,覆盖myReceiver的onReceive()方法以调用更新所需组件的函数:
@Override
public void onReceive(Context context, Intent intent) {
...
updateViewWithData(service.getNewFileData());
...
}
在Activity的onPause()方法中,只需取消注册接收器:
unregisterReceiver(myReceiver);
我希望这会对你有所帮助,随便问一下有什么不清楚的地方。
执行此操作的好方法是将“已下载的文件”活动绑定到服务。 绑定服务时,在onServiceConnected函数中,注册Binder回调。 然后,只要有新数据可用,服务就会调用该回调。 如果活动未运行,则服务端的回调列表将为空,因此不会通知您的活动。
有关此方法的示例,请查看Android SDK中的RemoteService.java:
样品\\ ApiDemos \\ SRC \\ COM \\示例\\机器人\\的API \\应用\\
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.