首页 新闻 会员 周边

android浏览器的下载管理器是怎么实现的。

0
悬赏园豆:60 [已关闭问题] 关闭于 2016-12-20 15:35
效果:从主界面进入下载界面,下载界面开线程下载,并现实下载进度。
按下back键时,退回主界面,但是下载线程不关闭,再次打开时,依旧显示下载进度。我准备用asynctask实现
(其实就和手机浏览器的下载管理器差不多=。=,比如下载到50%,后退之后隐藏了,再打开的时候现实实时的进度)

问题:在按下back键时,线程虽然不关闭,但是activity已经弹出,下次打开的是一个新的activity实例,
所以开的线程返回的值依旧是写在上一个已经关闭的activity上,新开的这个activity没变化。
例如:我在线程中写textView.setText(),这个textView是已经关闭的activity的,不是这个新的。

我想了三种解决方案:
1.重写onBackPressed(),在按下back键的时候将当前activity隐藏,再随时恢复,但是。但是没找到相应
的方法,只有一个moveTaskToBack()想当于按下了home键,整个程序都隐藏了。不是想要的效果=。=

2.再次开启当前页面时,让线程获得当前栈顶的activity实例,然后进行操作。
但是找到的方法得到的只是activity的信息,比如类名 ,包名等等,还是不行=。=

ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
RunningTaskInfo info = manager.getRunningTasks(1).get(0);

3.用handler,把更新textView的信息post回给ui线程,但是下载条还是不动。

求大神解答。,给个实现的思路就可以。

能不能别闹的主页 能不能别闹 | 初学一级 | 园豆:71
提问于:2016-12-20 14:46
< >
分享
所有回答(1)
0

不用那么麻烦的,返回后就让activity关闭好了,你可以用在服务中发送广播在activity中接受广播的形式来更新UI

没想到我也能写代码 | 园豆:202 (菜鸟二级) | 2016-12-20 17:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册