为什么我的Toast不出现?

Bri*_*n D 4 java android 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);
}
Run Code Online (Sandbox Code Playgroud)

dav*_*e.c 21

我想当你这样做时,toast.show()你要求 UI线程显示一个toast消息.它不一定执行immediatley.然后,您通过执行文件下载在UI线程中执行长时间运行的操作.这将阻止UI直到完成.我会将您的文件下载移动到一个,AsyncTask以便它不会挂起UI.

  • 确实.请参阅此答案以获取"AsyncTask"的示例:http://stackoverflow.com/questions/4828676/preventing-internet-accessing-method-from-delaying-a-toast-popup/4829593#4829593 (3认同)
  • 或者线程化,但AsyncTask将是解决此问题的更简单方法. (2认同)