【问题标题】:Is is right approach to use AsyncTaskLoader , which purpose is to clear external storage?使用 AsyncTaskLoader 的正确方法是清除外部存储吗?
【发布时间】:2016-03-21 20:34:14
【问题描述】:

当应用程序打开时,会显示启动画面,并且在后台我清理外部存储上的目录(如果存在),一旦目录被删除,另一个活动应该启动。 我正在使用 AsyncTask,因为 ASyncTask 不处理配置更改等,我想使用 AsyncTaskLoader 是个好主意, 我的意思是如果在单独的线程中,我正在尝试执行清理操作,并且我没有获取任何数据,我需要使用哪种线程机制?

【问题讨论】:

  • ASyncTask is not handling configuration changes是什么意思
  • 嗯,asyncTask 也在一个单独的线程上,你知道吗?
  • @Petro 读完你就会明白stackoverflow.com/questions/7120813/…
  • @Petro 当手机旋转时,Activity 被销毁,而 ASyncTask 没有,我需要自己销毁 AsyncTask 等。

标签: android android-asynctask android-loadermanager android-loader asynctaskloader


【解决方案1】:

是的,我认为 AsyncTask 是一个不错的选择。您可以在 SO 上查看此 question,了解 AsyncTask 、 Handler 和 Thread 之间的差异,以获取详细的优缺点列表。 AsyncTask 适用于不需要与 UI 线程通信并且与活动紧密耦合的后台进程(与 IntentService 不同)。尽管现在对于网络操作来说,volley 优于 AsyncTask

【讨论】:

  • 如果item onClick我从外部存储中删除了源,结果列表应该在item被删除时得到通知,在这种情况下(当单独的线程与UI线程交互时)AsyncTask是正确的选择?
  • 好吧,这类问题确实取决于非常具体的细节,但总的来说,如果没有提供更多信息,我建议您使用处理程序。阅读本文以了解为什么我推荐处理程序 stackoverflow.com/questions/2523459/handler-vs-asynctask
  • 对我来说主要问题是处理配置更改,而使用 AsyncTask 和 HandlerThread 可能会出现问题。即使考虑到这一事实,是否值得使用它?你需要什么样的细节?
猜你喜欢
  • 2011-02-12
  • 1970-01-01
  • 1970-01-01
  • 2015-09-28
  • 1970-01-01
  • 1970-01-01
  • 2013-08-24
  • 2019-03-23
  • 2019-12-24
相关资源
最近更新 更多