Default [Q] Android delay check for update recursive

I believe I might be attacking this problem with the wrong method or I'm not correctly coding it. I getting to many calls for an update. Sometimes I get update check several in hour. This function is my update function that calls to check for an update every so often unless there no internet and delays and tries again four hours. I don't know if I'm going about this right using a delay? I need for the update function to check and recheck every 24 hours regardless if it finds an update or not. It must try every 24 hours unless it doesn't have internet on the 24th hour and should try again in 4 hours. Am doing this correctly?

Code:
    private final Runnable mUpdateUI = new Runnable() 
    	{
    	    public void run()
    	    {
    	    	if (isNetworkAvailable()== true)
    	    	{
    		    	try 
    			    	{
    						new checkupdate().execute();
    						 mHandler.postDelayed(mUpdateUI, 86400000);
    						 Toast.makeText(MainActivity.this, "Daily update check!", Toast.LENGTH_LONG).show();
    					} 
    		    	catch (IOException e) 
    			    	{
    						// TODO Auto-generated catch block
    						e.printStackTrace();
    					}
    	    	}
    	    	else
    		    	{
    		    		mHandler.postDelayed(mUpdateUI, 21600000);
    		    		Toast.makeText(MainActivity.this, "No internet for Daily update check, try again in little!", Toast.LENGTH_LONG).show();
    		    	}
    	        
    	    }
    	    
    	}

;