其他分享
首页 > 其他分享> > intent使用异步任务的数据,但是在转uri的时候,报空指针错误原因?

intent使用异步任务的数据,但是在转uri的时候,报空指针错误原因?

作者:互联网

比如分享某个文件,把文件下载之后,转为Uri,这一流程。
public void share(){
    SFile sfile = getFirstSelected();
    //使用异步任务下载这个文件
    new DownloadTask().execute(sfile);
    //此处不能使用涉及到异步任务结果数据的UI操作!!!
}
public class DownloadTask extends AsyncTask<SFile, Void, String>{
     @Override
        protected TaskResult<SFile> doInBackground(SFile... sFiles) {
            
        }   
    @Override
        protected void onPostExecute(TaskResult<SFile> sFileTaskResult) {
            if(sFileTaskResult.isValid()){
                //在这边写intent
            }
}
异步任务没执行完,得不到更新UI所需的数据,造成系统崩溃。因为如果更新操作直接写在异步任务的调用函数后面的话,表示立即更新。
file转uri报空指针错误。应该把ui更新操作放在异步任务的post阶段。

标签:异步,uri,更新,sfile,任务,intent,TaskResult,报空,Override
来源: https://www.cnblogs.com/nuistjungu/p/13975820.html