Using \setbeamercolor{background canvas}{bg=black} works fine if I want to change the background color. However once I used \setbeamertemplate{background canvas}{} it doesn't work anymore:
\documentclass{beamer}
\begin{document}
% as expected
\begin{frame}{Test}
white
\end{frame}
\setbeamercolor{background canvas}{bg=black}
\begin{frame}{Test}
\textcolor{white}{black}
\end{frame}
\setbeamercolor{background canvas}{bg=}
\begin{frame}{Test}
white again
\end{frame}
% confusing
\setbeamertemplate{background canvas}{}
\setbeamercolor{background canvas}{bg=black}
\begin{frame}{Test}
should be black
\end{frame}
\end{document}
EDIT: Why do I do this?
I sometimes use a code like this
\setbeamertemplate{background canvas}{\includegraphics[width=\paperwidth]{picture.jpg}}
to use a picture to fill the background. I clear the picture by using
\setbeamertemplate{background canvas}{}
How else could I clear the picture?
Ok:

Ok:

Ok:

Here's the mistake:

Any ideas?
background canvassurely has\usebeamercolor{background canvas}or equivalent in it. So if you set the template to empty, the color will never get used. – marczellm Jan 11 '14 at 19:28