SingleTask类型的activity怎么区分是新调用的还是亮屏恢复的?
有个标准的activity,在onCreate中启用新线程执行下载数据功能和显示下载进度条。
但有时候会因各种原因卡主,无法下载成功,并且没有返回下载失败,导致activity没有被销毁。
下车再执行下载时又调用了原来的activity的onStart函数,所以不会重新下载。按说标准的activity,startActivity时不应该重新起一个新的activity吗?为什么调用的还是旧的activity呢?
那现在如果把activity设置为singleTask模式,每次调用的都是同一个activity。在onStart中执行下载操作的话,怎么区分是新调用的还是灭屏后亮屏执行到的呢?
另外,服务器不支持多线程下载数据。
可以在调用activity时在intent中每次设置一个不同的参数值表示新调用。在activity的onStart中取出intent的参数值与旧值进行比较,有变化就是新调用。
那除了这样,大家都是怎么区分的呢?因为用户灭屏再亮屏会重新执行onStart函数,所以需要区分是不是新调用。