Android Thread progressBar问题

时间:2013-02-19 12:51:29

标签: java android multithreading

运行线程的问题不是问题。我将简要介绍一下我想做什么以及我遇到的问题。

我现在:

  • 实施runnable接口
  • 创建新主题并调用start方法
  • 为start方法调用创建run方法。

新线程的目的是在主线程处理图像(像素级别)时为进度条设置动画。所以我在onCreate方法中创建了一个进度条,如下所示(loadBar是全局声明的)

loadBar =(ProgressBar)findViewById(R.id.loadBar);

然后在run方法

loadBar.animate();

但是,当调用run方法时,它会抛出一个空指针异常。当创建一个带有可运行接口的新线程时,我猜它不会调用onCreate方法导致空指针有什么方法可以解决这个问题,还是我只是缺少一些简单的东西?

编辑:请求的代码减少了一点但问题出在哪里

公共类MainActivity扩展Activity实现Runnable {

//Declare progressBar
private ProgressBar loadBar;

//Declare thread
private Thread createAnimation;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    addListenerOnButton();      
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

public void addListenerOnButton() {

    //assigning loadBar
    loadBar = (ProgressBar) findViewById(R.id.loadBar);

}

public void editImage(int pos)
{

    //show progress bar
    loadBar.setVisibility(View.VISIBLE);


    //start new thread for animation 
    createAnimation = new Thread(new MainActivity());
    createAnimation.start();

    //*** EDIT IMAGE CODE HERE (CUT OUT AS IT IS LONG AND NOT RELEVANT) **//

    //stop create for animation
    createAnimation.interrupt();
    loadBar.setVisibility(View.INVISIBLE);

}


    //@Override
    public void run() {

        //create animation
        loadBar.animate();

    }


}       

0 个答案:

没有答案