今天翻旧代码的时候,发现了这个东西,虽然年代久远,但也算一种耗时操作的解决方案。
使用 和 注意事项 请看 注释,
如果还有不明白的地方,欢迎评论区留言。
//初始化InnerTask 务必在主线程
new InnerTask().execute(queryParam);
private class InnerTask extends AsyncTask<QueryParam, Void, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
//显示加载框或者进度框 当前在: UI线程
}
@Override
protected String doInBackground(QueryParam... params) {
//执行耗时操作 当前在: IO线程
String result = "耗时操作后需要操作的数据"
return result;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
//隐藏加载框或者进度框 当前在: UI线程
Toast.makeText(MainActivity.this, s, Toast.LENGTH_SHORT).show();
}
}
AsyncTask 内部方法的运转顺序:
onPreExecute() → doInBackground(参数:类型取决于泛型) → onPostExecute(参数:类型取决于泛型);