編輯:高級開發
目前許多大型廠商都紛紛將目光轉向了智能手機,在手機領域展開了一場激烈的競爭。由谷歌推出的android手機操作系統就是一其中一個競爭對手。在這裡我們可以了解到android計時器的相關應用。
昨天晚上在寫一個android計時器,開始認為很容易,用Java一般寫法,結果發現計時器根本不能運行,但卻不報任何錯誤,當時就呆在那了,不知道該怎麼辦了,後來在網上查了一下,android考慮到線程安全問題,不允許在線程中執行UI線程(我的現在所知道,還有其他的限制發現中),在Android中,有一個很有意思的類:android.os.Handler,這個可以實現各處線程間的消息傳遞。
先看段代碼,這個實例化了一個Handler,Handler可以通過Message在多個線程通訊,我這裡做的是定時recLen加1,然後以一定的格式,顯示到recTime上(UI線程上的操作)。
- final Handler handler = new Handler(){
- public void handleMessage(Message msg) {
- switch (msg.what) {
- case 1:
- recLen++;
- recTime.setText(GetRecTime(recLen));
- break;
- }
- super.handleMessage(msg);
- }
- };
下面定實例化一個TimerTask,這個是為Timer提供一個定時執行的內容。我在這個方法中加的是給Handler一個發送消息功能,因這在Timer的線程中,無法直接操作UI線程。
- TimerTask task = new TimerTask(){
- public void run() {
- Message message = new Message();
- message.what = 1;
- handler.sendMessage(message);
- }
- };
剩下的工作就簡單多,添加一個Timer,可以讓程序運行起來了
- timer = new Timer(true);
- timer.schedule(task,1000, 1000);
- //延時1000ms後執行,1000ms執行一次
- //timer.cancel(); //退出android計時器
說到這裡,也許有些還感覺雲裡霧裡,好久沒寫東西,也不知道怎麼把問題說的更明白,這個再貼上我開始的錯誤寫法,對比錯誤寫法,也許能讓大家更快的明白過來
android計時器錯誤寫法
- TimerTask task = new TimerTask(){
- public void run() {
- recLen++;
- recTime.setText(GetRecTime(recLen));
- //直接在TimerTask中操作UI線程,單步調試的時候發現,程序根本就沒執行到這裡
- }
- };
- timer = new Timer(true);
- timer.schedule(task,1000, 1000);
android計時器的相關應用方法就為大家介紹到這裡。
Google正式推出了android 2.0系統的SDK(軟件開發套件,開發人員調試系統所用),這將使現在日漸風靡的GPhone變得越來越好用,這也大大的方便了用戶的使
項目要用到一個listvIEw,要求是可以顯示圖片,後面還有有復選框。先新建一個MyAdapter類,繼承自BaseAdapter。在MyAdapter中實現對數據的綁
但是當用戶選購android手機系統時也難免會注意到手機的操作系統,就不知“安致”這個名字能否被廣大手機用戶認可了,業界猜測該商標為android的中文商標。盡管and
最近,Google面向大學生推出android開發挑戰賽,android開發成為時下開發者的熱點開發項目。像《在NetBeans上搭建android SDK環境》這樣的