SingleTask类型的activity怎么区分是新调用的还是亮屏恢复的?

ameyume
博客专家认证
2020-11-01 03:29:09
有个标准的activity,在onCreate中启用新线程执行下载数据功能和显示下载进度条。 但有时候会因各种原因卡主,无法下载成功,并且没有返回下载失败,导致activity没有被销毁。 下车再执行下载时又调用了原来的activity的onStart函数,所以不会重新下载。按说标准的activity,startActivity时不应该重新起一个新的activity吗?为什么调用的还是旧的activity呢? 那现在如果把activity设置为singleTask模式,每次调用的都是同一个activity。在onStart中执行下载操作的话,怎么区分是新调用的还是灭屏后亮屏执行到的呢? 另外,服务器不支持多线程下载数据。 可以在调用activity时在intent中每次设置一个不同的参数值表示新调用。在activity的onStart中取出intent的参数值与旧值进行比较,有变化就是新调用。 那除了这样,大家都是怎么区分的呢?因为用户灭屏再亮屏会重新执行onStart函数,所以需要区分是不是新调用。
...全文
31135 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ameyume 2020-11-10
  • 打赏
  • 举报
回复
引用 3 楼 ink_s 的回复:
把activity加入到list,每启动一次添加,销毁一次删除,,每次下载的时候判断队列中有没有这个activity,有的话销毁了再次启动
谢谢,是这样做的。
ink_s 2020-11-02
  • 打赏
  • 举报
回复
把activity加入到list,每启动一次添加,销毁一次删除,,每次下载的时候判断队列中有没有这个activity,有的话销毁了再次启动
ameyume 2020-11-02
  • 打赏
  • 举报
回复
引用 1 楼 霖霖怪 的回复:
在Service里面写下载
谢谢!的确需要业务与UI分离。
霖霖怪 2020-11-02
  • 打赏
  • 举报
回复
在Service里面写下载

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧