函数类似于java中的fork()

时间:2013-03-07 11:15:17

标签: java android multithreading android-fragments fork

我正在为Android中的应用编码,我遇到了以下问题。

我必须覆盖内置函数Fragment getItem(int position)以返回图像的位图,但由于图像非常大,因此需要花费大量时间来加载。因此,UI的响应速度有点慢。 要解决这个问题,我认为可以像下面的代码一样解决它。它基本上会立即返回一个空白图像,当加载真实图像时,它会返回正确的图像。

@Override
    public Fragment getItem(final int position) {
        pid = fork();  //NOT POSSIBLE / ERROR
        if (!pid)
            return  (code for empty image);
        return new ScreenSlidePageFragment(files[position].getAbsolutePath(), width, height);
    }

但是,我不知道Java中与fork()类似的函数。 能否帮我解决这个问题,谢谢

3 个答案:

答案 0 :(得分:1)

在Java中,您可以使用 Thread 类。但是,如果您正在为Android开发,可以考虑使用 AsyncTask 并参考官方Android开发人员培训

Processing Bitmaps Off the UI Thread

答案 1 :(得分:0)

您可以在Java中打开Threads,而不是分支新进程。有关如何执行此操作的详细信息,请参阅this question

答案 2 :(得分:0)

您可以定义AsynTask,并在实现其功能时执行类似

的操作
public class imageLoader extends AsyncTask<Void, Void, Void>{

 protected preExecute(){
  //load the blank image
  //this function is executed on the UI thread
 }

 protected doInBackground(){
  //load the real one
  //that one is not executed on the UI thread
 }

 protected postExecute(){
  //set the new image 
  //this one is executed on the UI thread
 }
}