protected void onPreExecute() { //在异步任务之前,在主线程中 super.onPreExecute(); } @Override protected TreeMap<String, String> doInBackground(String... strings) { //在另一个线程中处理事件 Search search = new Search(); TreeMap<String, String> result = search.search(strings[0]); return result; }
时间: 2024-02-14 20:08:08 浏览: 136
Android中AsyncTask异步任务使用详细实例(一)
这段代码是一个异步任务(AsyncTask)类的定义。异步任务在Android中常用于在后台执行长时间运行的操作,比如网络请求、数据读写等等,以避免阻塞UI主线程,从而提高应用程序的响应速度和用户体验。
在这个异步任务中,onPreExecute()方法是执行异步任务之前在主线程中执行的方法,可以用于任务执行前的一些准备工作。而doInBackground()方法是在另一个线程中执行的方法,用于实际的异步操作,如网络请求等等。在这个例子中,doInBackground()方法创建了一个Search对象,然后调用该对象的search()方法进行搜索操作,并将搜索结果保存在一个TreeMap中,最终返回这个TreeMap对象。需要注意的是,这里的参数类型是String数组,表示可以传入多个参数。
需要注意的是,在AsyncTask类中还可以定义其他方法,比如onPostExecute()方法,它是在异步任务执行完毕后在主线程中执行的方法,用于处理异步任务的结果。
需要提醒的是,在Android 11及之后的版本,Google官方不再推荐使用AsyncTask,而是推荐使用更加灵活和可控的协程(Coroutine)来实现异步任务。
阅读全文