Skip to content

android-starter/async-task-demo

Repository files navigation

asyc-task-demo

异步线程示例

fd

主要代码

* FileCrawler.java 异步线程 FileCrawler 继承了 AsyncTask,并实现 doInBackground 和 onPostExecute(可选)方法。

/**
 * Created by wangpi on 6/30/2016.
 */
public class FileCrawler extends AsyncTask<File, Integer, Integer>{
    private TextView view;
    public FileCrawler(TextView view ){
        this.view = view;
    }

    @Override
    protected Integer doInBackground(File... folders) {
        Collection<File> files = null;
        for(File folder : folders){
            if(folder.exists() && folder.isDirectory()){
                if(files == null) {
                    files = FileUtils.listFiles(folder, null, true);
                }else{
                    files.addAll(FileUtils.listFiles(folder, null, true));
                }
            }
        }
        if(files != null){
            return files.size();
        }else{
            return 0;
        }
    }

    @Override
    protected void onPostExecute(Integer sum){
        view.setText("File amout : " + sum);
    }
}
  • MainActivity.java activity中开始异步线程
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        File[] folders = {Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM)};
        new FileCrawler((TextView)findViewById(R.id.info)).execute(folders);
    }
}

第三方jar包

为了简化文件操作,这里使用了 common io

About

异步线程示例

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages