下面代码测试理解 android ANR 问题产生的原因,主线程,和new Thread() 的思考:
package com.android.hello;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
public class HelloAndroidActivity extends Activity {
private String LOG_TAG = "HelloAndroid";
static final int HANDLER_TEST = 1;
Handler myHandler = new Handler(){
public void handleMessage(Message msg){
switch(msg.what){
case HANDLER_TEST:
//Log.w(LOG_TAG, "I'm in handler test !!!");
while(true)
{
//do nothing !!!
}
//break;
}
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Thread thr = new Thread(new Runnable(){
public void run()
{
Log.e(LOG_TAG, "I'm in new thread !!!");
while(true)
{
// do nothing !!!
myHandler.sendEmptyMessage(HANDLER_TEST);
}
}
});
thr.start();
/*while(true)
{
//Log.v(LOG_TAG, "I'm in while loop !!!");
}*/
}
}