首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android中Handler的运用

2013-01-07 
Android中Handler的使用Handler主要接受子public class TestActivity extends Activity {private int coun

Android中Handler的使用

Handler主要接受子public class TestActivity extends Activity {private int count = 1;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);new Thread(new TitleThread()).start();}class TitleThread implements Runnable {@Overridepublic void run() {while (true) {setTitle("Welcome to my blog" + count++);try {Thread.sleep(5000);} catch (InterruptedException e) {e.printStackTrace();}}}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.activity_main, menu);return true;}}然而当我们执行程序,并不能达到我们预期的效果,所以Android 引进了Handler 这个特殊的类,可以说它是Runnable和Activity交互的桥梁,所以我们只要在run方法中发送Message,而在Handler里,通过不同的Message执行不同的任务。所以我们修改后的代码如下:

public class MainActivity extends Activity {private int count = 1;    private Handler handler=new Handler(){    public void handleMessage(android.os.Message msg) {    switch (msg.what) {case 1:updateTitle();break;default:break;}    }    };@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);new Thread(new TitleThread()).start();}protected void updateTitle() {setTitle("Welcome to my blog" + count++);}class TitleThread implements Runnable {@Overridepublic void run() {while (true) {Message message=new Message();message.what=1;handler.sendMessage(message);try {Thread.sleep(5000);} catch (InterruptedException e) {e.printStackTrace();}}}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.activity_main, menu);return true;}}

public class TimerActivity extends Activity {private int count = 1; private Handler handler=new Handler(){ public void handleMessage(android.os.Message msg) { switch (msg.what) {case 1:updateTitle();break;default:break;} } };@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Timer timer=new Timer();timer.scheduleAtFixedRate(new TimerTask() {@Overridepublic void run() {Message message=new Message();message.what=1;handler.sendMessage(message);}}, 1000,5000);}protected void updateTitle() {setTitle("Welcome to my blog" + count++);}}

热点排行
Bad Request.