在读取.text文件之前,Toast在活动中没有正确显示。 Android的

时间:2014-08-11 22:08:30

标签: android

需要帮助!

我尝试显示吐司信息(msg:请等待......)然后发生了一些事情(加载加载/读取.txt文件)然后另一个吐司(msg:完成!)。

但是第一次敬酒没有表现出来......或者说它太可笑了 加载此.txt文件需要一些时间(约5秒)我想通知用户。

有什么想法吗?我alredy试过睡觉和其他...

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

提前致谢!

抱歉我的英文

2 个答案:

答案 0 :(得分:0)

您是异步运行文件访问吗?如果没有,你永远不应该在主线程中运行很长的阻塞操作。在文件访问完成之后,它可能无法呈现您的第一个吐司,此时它应该已经消失。尝试AsyncTask中的访问权限。

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();

答案 1 :(得分:0)

请将加载过程置于新线程中,我认为主进程已被阻止。