如何使用的意图,更新活动?
-
19-09-2019 - |
题
我有一个是下载文件的服务。当下载完成后,我想在我的Activity
更新我的“已下载的文件”列表中,但只有当Activity
运行。我不想Activity
开始,如果它尚未运行。
我希望我可以做一个新的Intent
有一些特殊的标志做到这一点。
任何人有任何想法,我怎么能做到这一点?一个微小的代码示例可能?
解决方案
您可以创建新的广播接收器实例,并做一些事情沿着你的活动的这些的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);
我希望这会帮助你,随时问如果有什么不清楚的。
其他提示
要做到这一点的好办法,就是你的“下载文件”活动绑定到服务。当您绑定的服务,在功能onServiceConnected,注册一个活页夹回调。然后,只要你有新的数据可用,服务只是调用回调函数。如果活动没有运行,在服务端回调列表是空的,所以它不会告诉你的活动。
有关这种方法的一个例子,看看RemoteService.java Android中SDK:
样品\ ApiDemos \ SRC \ COM \示例\机器人\的API \应用\
不隶属于 StackOverflow