我知道关于这个主题有很多线程,但是:我有一个简单的任务。
public class MyTask extends AsyncTask<T, U, V> {
...
@Override
protected Void doInBackground(T... params) {
for (int i = 0; i < 60; i++)
{
if (isCancelled()) return null;
publishProgress(i);
Thread.sleep(1000);
}
return null;
}
...
}
这很简单,我数到 60 并更新 UI 上的 TextView。当我们必须解决配置更改(如旋转屏幕)等时,问题就会出现,因为我们必须避免内存泄漏并正确处理所有线程。
在 Android 3.0 中引入,加载程序开始发挥作用。加载器现在是在后台线程中处理长期操作的首选方式(我们不必太关心线程)。但如果我理解正确的话,它们主要用于从某个地方加载一些数据并将它们显示在 Activity / Fragment 中。比如下载一些网页内容并以列表等形式显示。
编辑:现在我发现了一些其他可能性如何做一些后台工作,比如使用没有 UI 的片段(当活动重新创建时 RetainInstance = true)或将其作为服务启动的想法。他们大概可以以更简单的方式实现这一目标。
我的问题是,由于我是 Android 新手,我应该走哪条路?