我想知道如果我在中间运行AsyncTask时退出活动,并且当我尝试再次启动该活动时,必须等到先前的AsyncTask在新的AsynTask启动之前完成。我尝试了thread.sleep和systemclock.sleep,它给了我相同的结果。这是有道理的,因为我猜想我关闭并打开的线程是相同的。如果用户退出一个活动,那么它有一种方法可以取消AsyncTask?因为那时用户第二次输入相同的活动,他不必等到先前完成。 我在onPause()中尝试了asyntask.cancel(true),它不起作用,发生同样的事情。thread.sleep和systemclock.sleep有什么区别。哪一个应该用在AsyncTask中?
4
A
回答
7
据我所知,Thread.sleep()和SystemClock.sleep()之间的唯一区别是Thread.sleep()可以被中断。也就是说,类似于:
SystemClock.sleep(10*1000);
睡眠调用线程10秒,这就是说,您只需等待。鉴于:
Thread.sleep(10*1000);
也将睡眠调用线程10秒。但如果你从另一个线程休眠线程的引用,你现在有类似的选项:
sleepingThread.interrupt();
有效地唤醒sleepingThread来自其10个第二睡眠。
在您的问题的背景下,哪个更适合AsyncTask,我认为它完全取决于您的要求。我当然不知道你的确切代码,但考虑到你的任务的doInBackground显然是在做一些睡眠,并且由于你希望能够在任意时间取消你的任务,Thread.sleep()可能会更有意义。
相关问题
- 1. git.cmd vs git.exe - 有什么区别,应该使用哪一个?
- 2. C#Thread.Sleep()和threadreference.Join()有什么区别?
- 3. AsyncTask和Handlers之间有什么区别,哪个更适合在Listview中使用?
- 4. min和普通文件有什么区别,我应该使用哪一个?
- 5. PHP 5.3.x和PHP 5.2.x有什么区别,我应该使用哪一个?
- 6. MSI和EXE安装程序有什么区别,我应该选择哪一个?
- 7. Sxml与xexp有什么区别,为什么我应该使用哪个?
- 8. Java中的Thread.yield()和Thread.sleep(0)有什么区别?
- 9. shouldBe和shouldBe应该在KotlinTest中有什么区别?
- 10. 在c#中,等式成员和等号比较器之间有什么区别,你应该使用哪一个?
- 11. selenium.wait(),selenium.wait(2000)和Thread.sleep(2000)之间有什么区别?
- 12. 我应该使用什么?服务? AsyncTask?还有别的吗?
- 13. GTK +和GTK#有什么区别,哪一个是“更多平台”?
- 14. J2ME Wireless Toolkits和哪一个选择有什么区别?
- 15. ajax和jquery有什么区别,哪一个更好?
- 16. 色调和ambari视图有什么区别?哪一个更好
- 17. arrayListOf和mutableListOf有什么区别,哪一个更好?
- 18. 有什么区别`和$(Bash中有什么区别?
- 19. 别名和标签有什么区别? (一般和在git中)
- 20. 什么是aspnet_Users和aspnet_Membership?我应该使用哪一个?有什么不同?
- 21. sqlite中query()和rawQuery()之间有什么区别,哪一个更有效,goog
- 22. 哪个应该使用Handler,AsyncTask或Thread?
- 23. Handler(MessageQueue)和AsyncTask(SERIAL_EXECUTOR)有什么区别,性能明智吗?
- 24. 有什么区别使用=和:在javascript
- 25. 在JavaScript中,'\'和'\ n'有什么区别?
- 26. =和在mysql中有什么区别?
- 27. 在Ember.js中,[]和Ember.A([])有什么区别?
- 28. 在PHP中!==和!=有什么区别?
- 29. *和。*在matlab中有什么区别?
- 30. !=和=!有什么区别!在Java中?
看看这里:http://stackoverflow.com/questions/4748964/android-cancel-asynctask-forcefully – newbyca
它的作品谢谢!但是我的问题的第一部分呢? thread.sleep或systemclokc.sleep? –
我继续为您的问题的具体部分提交实际答案,请参阅下文。 – newbyca