运行线程的问题不是问题。我将简要介绍一下我想做什么以及我遇到的问题。
我现在:
新线程的目的是在主线程处理图像(像素级别)时为进度条设置动画。所以我在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();
}
}