Q:

Как сделать интервал между Toast?

У меня в коде toast вызывается бесконечно, но я хочу чтобы он вызывался условно каждые 20 секунд. Как я могу это реализовать?

A:

Для этого можно создать отдельный AsyncTask, который будет через каждые n секунд показывать Toast. Переменная boolean showToast отвечает за цикл, пока она true, тосты будут всплывать.
class ShowToastTask extends AsyncTask<Void, Void, Void> {

    @Override
    protected Void doInBackground(Void... voids) {
        try{
            while (showToast) {
              TimeUnit.SECONDS.sleep(20);
              getActivity().runOnUiThread(new Runnable() {
                @Override
                public void run() {
                   Toast toast = Toast.makeText(getApplicationContext(), 
                   "Toast msg", Toast.LENGTH_SHORT); 
                   toast.show(); 
                } 
              });

            }

        }catch (InterruptedException e){
            e.printStackTrace();
        }

        return null;
    }

}

Вызвать его можно на пример в методе onCreate()
ShowToastTask toastTask = new ShowToastTask();
toastTask.execute()

