Unregister contentObserver while PlaybackService gets destroyed.

This commit is contained in:
Adrian Ulrich 2017-09-03 15:30:03 +02:00
parent 2808735a17
commit 59e98546c9
2 changed files with 20 additions and 1 deletions

View File

@ -12,7 +12,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package ch.blinkenlights.android.medialibrary;
@ -274,6 +274,23 @@ public class MediaLibrary {
}
}
/**
* Unregisters a content observer which was previously registered
* by calling registerContentObserver().
*
* @param observer the content observer to unregister.
*/
public static void unregisterContentObserver(ContentObserver observer) {
if (sContentObserver == null)
throw new IllegalStateException("No ContentObserver was registered!");
if (!sContentObserver.equals(observer))
throw new IllegalArgumentException("Passed content observer was not the one you registered!");
// Sanity check passed: unregister observer.
sContentObserver = null;
}
/**
* Broadcasts a change to the observer, which will queue and dispatch
* the event to any registered observer

View File

@ -598,6 +598,8 @@ public final class PlaybackService extends Service
// defer wakelock and close audioFX
enterSleepState();
MediaLibrary.unregisterContentObserver(mObserver);
if (mMediaPlayer != null) {
mMediaPlayer.release();
mMediaPlayer = null;