第三十四讲:Android Timer计时器 - 火箭發射為例
http://blog.csdn.net/mylzc/article/details/6736988 转载系列:
Android异步处理系列文章索引Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面Android异步处理二:使用AsyncTask异步更新UI界面Android异步处理三:Handler+Looper+MessageQueue深入详解Android异步处理四:AsyncTask的实现原理
Android觀念篇:
1.Android的thread跟Java的thread大同小異,不同的是 Java是從public static void main(String args[]){
}作為一個程式的開頭再去呼叫其他method跟class
Android呼叫class 跟 method間交互應用也是相同,唯一不同的是
Android有四大元件Activity , Service , BroadcastReceiver , Content Provider等
各種元件有各自對應的生命週期,所以情境應用上比Java複雜多了
又舉例來說 Android會用handler來作為UI更新
2.在Android中只要執行會超過5秒的程序,就需要使用thread / handler來處理
3.Thread 裡是無法做任何有關介面的事,所以我們必須倚賴 Handler,可以把它想成介面與執行緒之間的經紀人。
在Android運用到執行序中會有兩種情況
一種是
一次性
Thread thread=new Thread(new Runnable() {     @Override    public void run()    {                } });thread.start();//開始執行緒
//想暫停的時候
thread.sleep(3000);//毫秒的意思  3000就是3秒 以此類推
 
//最後不用時
thread.stop();//停止執行緒
常駐性
//new一個執行緒,progressBar每秒增加5 ,到100%時停止Thread mThread = new Thread(new Runnable() { public void run() {       Message message;      String obj="run";      for(int i=0 ; i < 20; i++){       try{         threadCount = (i + 1) * 5;         Thread.sleep(500);         progressBar.setProgress(threadCount);         message = handler.obtainMessage(1,obj);        handler.sendMessage(message);     }catch (Exception e) {         e.printStackTrace();      } } } }); mThread.start();  private Handler handler = new Handler(){@Overridepublic void handleMessage(Message msg) {        super.handleMessage(msg);        String MsgString = (String)msg.obj;        if (MsgString.equals("run"))        {                    //do something                    if(threadCount>=100){                      Toast.makeText(OrderActivity.this,"下載完成!!!!",Toast.LENGTH_SHORT).show();                      textView.setText("100%");                    }else{                      textView.setText(threadCount+"%....");                     }         }}};Android實務篇:
 
沒有留言:
張貼留言