I'm getting error when I try to add a timer to trigger ads in my application

I try running the ads, but it keep saying that the object can't be run inside another class called adTimer.schedule

I tried using MainActivity.mInterstAd.show(); that didn't work.

import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;
import android.widget.Button;
 import android.view.View;
import android.util.Log;
 import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.InterstitialAd;
import com.google.android.gms.ads.MobileAds;
import java.util.Timer;
import java.util.TimerTask;



public class MainActivity extends AppCompatActivity {

private InterstitialAd mInterstAd;
public long adClockTimer = 1 * 60000; //by milliseconds

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //Testing Ad Unit
    mInterstAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
    mInterstAd.loadAd(new AdRequest.Builder().build());
    //Timer Ran
    Timer adTimer = new Timer();
    adTimer.schedule(new TimerTask() {

        @Override
        public void run() {
            if (mInterstAd.isLoaded()) {
                mInterstAd.show();
            } else {
                Log.d("TAG", "The interstitial wasn't loaded yet.");
            }
        }
    }, 0, adClockTimer);


    //Button Listener
    final Button micB1 = findViewById(R.id.micButton);
    micB1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            // Code here executes on main thread after user presses button
            if (mInterstAd.isLoaded()) {
                mInterstAd.show();
            } else {
                Log.d("TAG", "The interstitial wasn't loaded yet.");
            }
        }
    });

    mInterstAd.setAdListener(new AdListener() {
        @Override
        public void onAdLoaded() {
            // Code to be executed when an ad finishes loading.
        }

        @Override
        public void onAdFailedToLoad(int errorCode) {
            // Code to be executed when an ad request fails.
        }

        @Override
        public void onAdOpened() {
            // Code to be executed when the ad is displayed.
        }

        @Override
        public void onAdClicked() {
            // Code to be executed when the user clicks on an ad.
        }

        @Override
        public void onAdLeftApplication() {
            // Code to be executed when the user has left the app.
        }

        @Override
        public void onAdClosed() {
            // Code to be executed when the interstitial ad is closed.
            // Load the next interstitial.
            mInterstAd.loadAd(new AdRequest.Builder().build());
        }
    });
}
}

2019-05-24 16:02:04.402 6677-6778/com.ernshu.www.learnlanguagexj E/AndroidRuntime: FATAL EXCEPTION: Timer-0 Process: com.ernshu.www.learnlanguagexj, PID: 6677 java.lang.IllegalStateException: isLoaded must be called on the main UI thread. at com.google.android.gms.common.internal.Preconditions.checkMainThread(Unknown Source:46) at com.google.android.gms.internal.ads.zzcqc.isReady(Unknown Source:76) at com.google.android.gms.internal.ads.zzabb.isLoaded(Unknown Source:20) at com.google.android.gms.ads.InterstitialAd.isLoaded(Unknown Source:7) at com.ernshu.www.learnlanguagexj.MainActivity$1.run(MainActivity.java:41) at java.util.TimerThread.mainLoop(Timer.java:555) at java.util.TimerThread.run(Timer.java:505)