繁体   English   中英

如何使用意图更新活动?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM