java - 为什么我的 Toast 不显示?

标签 java android toast

直到文件下载完成后我的 toast 才会显示(我评论了下载功能)。有什么想法吗?

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    ImageView main_image_view = (ImageView)this.findViewById(R.id.main_image_view);
    TextView text_view = (TextView)this.findViewById(R.id.main_text_view);

    Context context = getApplicationContext();
    CharSequence text = "File Not Found. Downloading... Please be patient, it's a large file!";
    int duration = Toast.LENGTH_SHORT;

    Toast toast = Toast.makeText(context, text, duration);
    toast.show();

    // This function fetches a file from a URL.
    brain = get_frame_fl(file_name, mActive_slice);
    brain_slice = Bitmap.createBitmap(brain_pixels, frame_width, frame_height, Bitmap.Config.ARGB_8888);

    // display
    main_image_view.setImageBitmap(brain_slice);
}

最佳答案

我认为当您执行 toast.show() 时,您是在请求 UI 线程显示 toast 消息。它不一定立即执行。然后,您将通过文件下载在 UI 线程中执行长时间运行的操作。这将阻止 UI,直到它完成。我会将您的文件下载移动到 AsyncTask 中,这样它就不会挂起 UI。

关于java - 为什么我的 Toast 不显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4867317/

相关文章:

java - 为什么 JMockit 不使用这个(显然)有效的 Injectable?

Android RelativeLayout 透明

android - 通知大文本 Android GCM

css - 无法设置 Angular Material Toast 的高度

android - 和引擎一起 toast 提问?

java - 使用进程构建器执行两个命令

java - 避免服务类之间的紧耦合

android - 带有导航组件的顶部应用栏和底部应用栏的两个不同菜单

ios - iOS 应用程序的 android.widget.Toast 等价物是什么?

java - 在 Eclipse 中,从 Java 项目访问 Android 项目类