Android Toast未在读取.txt文件之前的活动中正确显示。安卓

Android Toast未在读取.txt文件之前的活动中正确显示。安卓,android,Android,需要帮助 我试着给大家看祝酒词MSG:请稍等。。。然后加载/读取.txt文件,然后是另一个toast消息:done 但是第一次敬酒并没有显示。。或者可能太快了 加载这个.txt文件需要一些时间~5秒,我想通知用户 有什么想法吗?我一直试着睡觉和其他 Toast.makeText(getApplicationContext(), "Please wait...", Toast.LENGTH_LONG).show(); File sdcard = Environment.getExternalSto

需要帮助

我试着给大家看祝酒词MSG:请稍等。。。然后加载/读取.txt文件,然后是另一个toast消息:done

但是第一次敬酒并没有显示。。或者可能太快了 加载这个.txt文件需要一些时间~5秒,我想通知用户

有什么想法吗?我一直试着睡觉和其他

Toast.makeText(getApplicationContext(), "Please wait...", Toast.LENGTH_LONG).show();
File sdcard = Environment.getExternalStorageDirectory();
...
...
Toast.makeText(getApplicationContext(), "Done !",Toast.LENGTH_LONG).show();
提前谢谢


对不起,我的英语不好

您正在异步运行文件访问吗?如果不是,则永远不要在主线程中运行长时间阻塞操作。在文件访问完成之前,它可能无法呈现您的第一个toast,此时它应该已经消失了。在异步任务中尝试访问


请将加载过程放在一个新线程中,我认为主进程被阻塞。

是的,可能你是正确的,但它太复杂了。我需要简单快速地解决这个问题。谢谢
Toast.makeText(getApplicationContext(), "Please wait", Toast.LENGTH_LONG).show();

new AsyncTask<Void, Void, Void>() {
    @Override
    protected Void doInBackground() {
        File sdcard = Environment.getExternalStorageDirectory();
        [access/mess around with the file]
        return null;
    }

    @Override
    protected void onPostExecute(Void aVoid) {
        Toast.makeText(getApplicationContext(), "Done",Toast.LENGTH_LONG).show();
    }
}.execute();