javahandler(java handler使用)
java程序报错如下:
数组越界了for(inti=0;ia[i+1]){当i=6的时候,a[i+1]就是a[7],最多只有a[0]到a[6]
java 中为什么要引入handler这种设计方法?
代码的目的是满足需求,操作方便自然就写了,无论handler还是controller,都是为了实现需求,但当出现大量handler的时候,说明这个程序员啥都不懂,连命名都不会了,命名成XXService、XXDao等,至少从代码上可以看出层次看出功能,便于后期维护
如果这是项目经理写的,只能说明他画虎不成反类犬,很不可取,千万别跟他学
android代码 java代码。 Handler Post与线程Thread问题
首先你要明白,handler具体有什么用。hander的具体作用是:主要接受子线程发送的数据, 并用此数据配合主线程更新UI。因为在安卓中所有的耗时操作都不应该放在主线程中来执行,不然有可能会造成主线程的阻塞,所以一般都是新开一个线程。而线程之间是如何通信的呢。用的就是handler,它是用来线程间通信的,这点你需要搞明白。
而Looper的作用是从消息列表中不断的去取出消息来执行,一个消息队列就必定会有一个looper。
而你的这串代码中,没有涉及的更改UI,也没有涉及到线程间的消息传输,所以肯定用不到handler。
希望在学习安卓的时候,先把概念搞清楚,不然你会学习的很累。我也是做安卓的开发,也是自学的。有需要可以继续提问,知无不言言无不尽。纯手打,望采纳。
安卓开发,java线程报错的问题,handler空指针
抛空指针是应该的 因为mhandler在指向new Handler之前是指向null的
onCreate方法优先执行了 所以抛出空指针
把代码改成:
public class MainActivity extends Activity {
private Handler mhandler = new Handler(){
? ?public void handleMessage(Message msg){
? ? System.out.println("收到");
? ?}
};
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread(){
public void run() {
while(true){
try {
mhandler.sendEmptyMessage(0);
sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
? ? ? ? ? ?}
}
}.start();
}
}