如何使用的意图,更新活动?(How to use an intent to update an ac

2019-07-03 14:37发布

我有一个下载文件的服务。 当下载完成后,我想在我更新我的“已下载的文件”列表中Activity ,但只有当Activity正在运行。 我不想让Activity开始,如果它尚未运行。

我希望我可以做一个新的做这个Intent与一些特殊的标志。

任何人有任何想法,我怎么能做到这一点? 也许一个很小的代码示例?

Answer 1:

您可以创建新的广播接收器的实例,做东西沿着这些路线上的活动的的onResume()方法:

registerReceiver(myReceiver, new IntentFilter(DownloadService.ACTION_FILE_DOWNLOADED));

在此之后,覆盖myReceiver的的onReceive()方法调用,更新所需的组件的功能:

@Override 
public void onReceive(Context context, Intent intent) {
...
    updateViewWithData(service.getNewFileData());
...
}

您的活动的的onPause()方法,只是注销接收器:

unregisterReceiver(myReceiver);

我希望这会帮助你,随时问,如果有什么不清楚。



Answer 2:

做到这一点的好办法,就是你的“下载文件”活动绑定到服务。 当您绑定的服务,在功能onServiceConnected,注册一个活页夹回调。 然后,只要你有新的数据可用,服务只是调用回调函数。 如果活动没有运行,在服务端回调列表是空的,所以它不会告诉你的活动。

对于这种方法的一个例子,拿在Android SDK中看看RemoteService.java:

样品\ ApiDemos \ SRC \ COM \示例\机器人\的API \应用\



文章来源: How to use an intent to update an activity?