Prevent onServiceConnected ClassCastException

This commit is contained in:
Martin Fietz 2016-06-03 12:56:30 +02:00
parent 1048735327
commit eca8fc90b8
2 changed files with 13 additions and 11 deletions

View File

@ -196,9 +196,10 @@ public class PlayerWidgetService extends Service {
public void onServiceConnected(ComponentName className, IBinder service) { public void onServiceConnected(ComponentName className, IBinder service) {
Log.d(TAG, "Connection to service established"); Log.d(TAG, "Connection to service established");
synchronized (psLock) { synchronized (psLock) {
playbackService = ((PlaybackService.LocalBinder) service) if(service instanceof PlaybackService.LocalBinder == false) {
.getService(); playbackService = ((PlaybackService.LocalBinder) service).getService();
startViewUpdaterIfNotRunning(); startViewUpdaterIfNotRunning();
}
} }
} }

View File

@ -258,14 +258,15 @@ public abstract class PlaybackController {
private final ServiceConnection mConnection = new ServiceConnection() { private final ServiceConnection mConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName className, IBinder service) { public void onServiceConnected(ComponentName className, IBinder service) {
playbackService = ((PlaybackService.LocalBinder) service) if(service instanceof PlaybackService.LocalBinder) {
.getService(); playbackService = ((PlaybackService.LocalBinder) service).getService();
if (!released) { if (!released) {
queryService(); queryService();
Log.d(TAG, "Connection to Service established"); Log.d(TAG, "Connection to Service established");
} else { } else {
Log.i(TAG, "Connection to playback service has been established, " + Log.i(TAG, "Connection to playback service has been established, " +
"but controller has already been released"); "but controller has already been released");
}
} }
} }