Android Handler and Message and Timer

定义相关变量

	private Handler uHandler;
	private TimerTask task;
	private Timer timer = new Timer();;

实现相关代码

Handler 部分:用于处理接收到的消息,根据msg.what部分进行相关消息处理,其中消息有来之Timer与线程

        uHandler = new Handler(){
        	@Override
        	public void handleMessage(Message msg)
        	{
        		super.handleMessage(msg);
        		switch (msg.what)
        		{
        			case 0:
        				// show Begin time when press Play menu
        				bTime.setText("Begin time: " + nowdate.format(new Date()));
        		        break;
        			case 1:
        				// show current time while runin is on going
        				cTime.setText("Current time: " + nowdate.format(new Date()));
        				if (runTime >= 3600)
        				{
        					hour ++;
        					runTime = 0;
        				}
        				pTime.setText("Run time: " + hour +":" + runTime/60 + "  ");
        				break;
        			case 2:
        				// no video found message
        				Toast.makeText(getApplicationContext(), "No Video found!", Toast.LENGTH_LONG).show();
        				break;
        			case 3:
        				// video found message
        				Toast.makeText(getApplicationContext(), "Runin video was found, get ready!", Toast.LENGTH_LONG).show();        				
        				break;
        			case 4:
        				// Fail conditions
        				Log.e(TAG, "Got Message for Fail");
        				setRuninResults(1);  
        				break;
        			case 5:
        				// Fass conditions
        				setRuninResults(0);	
        				break;
        			
        		}
        	}
        };

Timer 与Message 部分:实现向Handler发送消息,该部分主要为后台运行的部分,与线程类似。

                timer.schedule(task, 0, 1000);  /* Now start to Counter */

                task = new TimerTask(){
        	@Override
        	public void run()
        	{
        		runTime ++;
        		if (hour >= RuninTime)
        		{
        			Message msg = new Message();
            		        msg.what = 5;
            		        uHandler.sendMessage(msg);
        		}else
        		{
        			Message msg = new Message();
            		        msg.what = 1;
            		        uHandler.sendMessage(msg);
        		}
        	}
        };

Thread 线程部分:线程最简单的创建方法,通过线程向Handler发送消息

        new Thread(){
        	@Override
        	public void run(){
        		if (!findRuninVideo("/mnt"))
        		{
        			Message msg = new Message();
        			msg.what = 2;
        			uHandler.sendMessage(msg);
        		}
        		else
        		{
        			Message msg = new Message();
        			msg.what = 3;
        			uHandler.sendMessage(msg);
        			runinVideo = playList.get(0);
        		}
        		Log.d(TAG, "Thread exit success!");
        	}
        }.start();





你可能感兴趣的:(thread,timer,android,Date,video,menu)