我知道有很多关于这个主题的主题,但是:我有一个简单的任务。
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新手,我应该选择哪种方式?