给什么平台,跳什么舞

Music Widget bug

Bug 96527 在Launcher的音乐播放器widget中,音乐暂停后,一分钟左右,在显示歌曲名的地方显示“播放列表是空的。”

在Launcher中的Choose widget的列表中出现的widget,应该是其声明了自己是个widget,然后被Choose widget收集进来。

在Music的AndroidManifest.xml中,

<meta-data android:name="android.appwidget.provider" android:resource="@xml/appwidget_info" />

MusicAppWidgetProvider.java

performUpdate titleName = service.getTrackName();

Logv发现,调用了MediaPlaybackService.java的onDestroy,让mCursor变成null,导致取titleName的时间返回null。

定点跟踪:播放-〉暂停-〉过一分钟-〉显示“播放列表为空。”

01-01 10:14:35.250: DEBUG/MusicAppWidgetProvider(1154): BOOLEAN=true
01-01 10:14:35.250: DEBUG/MusicAppWidgetProvider(1154): playing
01-01 10:14:36.160: DEBUG/MusicAppWidgetProvider(1154): BOOLEAN=false
01-01 10:14:36.160: DEBUG/MusicAppWidgetProvider(1154): pause
01-01 10:15:36.260: DEBUG/MusicAppWidgetProvider(1154): BOOLEAN=false
01-01 10:15:36.260: DEBUG/MusicAppWidgetProvider(1154): pause
01-01 10:15:35.650: DEBUG/KeyguardUpdateMonitor(272): handleBatteryUpdate
01-01 10:15:36.230: VERBOSE/MediaPlayer(1154): getCurrentPosition
01-01 10:15:36.230: VERBOSE/MediaPlayerService(129): getCurrentPosition
01-01 10:15:36.230: VERBOSE/StagefrightPlayer(129): getCurrentPosition
01-01 10:15:36.230: VERBOSE/MediaPlayerService(129): [39] getCurrentPosition = 253127
01-01 10:15:36.230: DEBUG/MediaPlaybackService(1154): Service destroy start
01-01 10:15:36.230: DEBUG/MediaPlaybackService(1154): MediaPlayer reset
01-01 10:15:36.230: VERBOSE/MediaPlayer(1154): reset
01-01 10:15:36.230: VERBOSE/MediaPlayerService(129): [39] reset
01-01 10:15:36.230: VERBOSE/StagefrightPlayer(129): reset
01-01 10:15:36.230: VERBOSE/AwesomePlayer(129): reset
01-01 10:15:36.230: INFO/AwesomePlayer(129): reset_l wait
01-01 10:15:36.230: INFO/AwesomePlayer(129): --reset_l wait
01-01 10:15:36.230: INFO/AwesomePlayer(129): --cancel event
01-01 10:15:36.230: INFO/AwesomePlayer(129): --cancel clear ok
01-01 10:15:36.230: INFO/AwesomePlayer(129): --cancel source ok
01-01 10:15:36.230: VERBOSE/AudioSink(129): stop
01-01 10:15:36.230: VERBOSE/AudioSink(129): close
01-01 10:15:36.230: VERBOSE/AudioPolicyService(129): releaseOutput() tid 346
01-01 10:15:36.230: VERBOSE/AudioPolicyService(129): releaseOutput() got lock
01-01 10:15:36.230: VERBOSE/AudioFlinger(129): remove track (4096) and delete from mixer
01-01 10:15:36.230: VERBOSE/AudioFlinger(129): PlaybackThread::Track destructor
01-01 10:15:36.230: VERBOSE/AudioFlinger(129): removeClient_l() pid 129, tid 346, calling tid 1154
01-01 10:15:36.230: INFO/AwesomePlayer(129): --mVideoRenderer clear ok
01-01 10:15:36.230: INFO/AwesomePlayer(129): --mLastVideoBuffer release ok
01-01 10:15:36.230: INFO/AwesomePlayer(129): --mVideoBuffer->release release ok
01-01 10:15:36.230: INFO/AwesomePlayer(129): --mRTSPController->disconnect ok
01-01 10:15:36.230: INFO/AwesomePlayer(129): --mRTP clear ok
01-01 10:15:36.230: INFO/AwesomePlayer(129): --flushCommands ok
01-01 10:15:36.230: INFO/TimeSource(129): SystemTimeSourceForSync::reset 1 [5743000]
01-01 10:15:36.230: INFO/AwesomePlayer(129): --mSystemTimeSourceForSync reset ok
01-01 10:15:36.230: INFO/AwesomePlayer(129): --mFileSource clear ok
01-01 10:15:36.230: INFO/AwesomePlayer(129): --ok..reset
01-01 10:15:36.240: DEBUG/MediaPlaybackService(1154): MediaPlayer release
01-01 10:15:36.240: VERBOSE/MediaPlayer(1154): setListener
01-01 10:15:36.240: VERBOSE/MediaPlayer(1154): disconnect
01-01 10:15:36.240: VERBOSE/MediaPlayerService(129): disconnect(39) from pid 1154
01-01 10:15:36.240: VERBOSE/StagefrightPlayer(129): reset
01-01 10:15:36.240: VERBOSE/AwesomePlayer(129): reset
01-01 10:15:36.240: INFO/AwesomePlayer(129): reset_l wait
01-01 10:15:36.240: INFO/AwesomePlayer(129): --reset_l wait
01-01 10:15:36.240: INFO/AwesomePlayer(129): --cancel event
01-01 10:15:36.240: INFO/AwesomePlayer(129): --cancel clear ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --cancel source ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --mVideoRenderer clear ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --mLastVideoBuffer release ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --mVideoBuffer->release release ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --mRTSPController->disconnect ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --mRTP clear ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --flushCommands ok
01-01 10:15:36.240: INFO/TimeSource(129): SystemTimeSourceForSync::reset 0 [5000]
01-01 10:15:36.240: INFO/AwesomePlayer(129): --mSystemTimeSourceForSync reset ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --mFileSource clear ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --ok..reset
01-01 10:15:36.240: VERBOSE/StagefrightPlayer(129): ~StagefrightPlayer
01-01 10:15:36.240: VERBOSE/StagefrightPlayer(129): reset
01-01 10:15:36.240: VERBOSE/AwesomePlayer(129): reset
01-01 10:15:36.240: INFO/AwesomePlayer(129): reset_l wait
01-01 10:15:36.240: INFO/AwesomePlayer(129): --reset_l wait
01-01 10:15:36.240: INFO/AwesomePlayer(129): --cancel event
01-01 10:15:36.240: INFO/AwesomePlayer(129): --cancel clear ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --cancel source ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --mVideoRenderer clear ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --mLastVideoBuffer release ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --mVideoBuffer->release release ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --mRTSPController->disconnect ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --mRTP clear ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --flushCommands ok
01-01 10:15:36.240: INFO/TimeSource(129): SystemTimeSourceForSync::reset 0 [0]
01-01 10:15:36.240: INFO/AwesomePlayer(129): --mSystemTimeSourceForSync reset ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --mFileSource clear ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --ok..reset
01-01 10:15:36.240: VERBOSE/AwesomePlayer(129): reset
01-01 10:15:36.240: INFO/AwesomePlayer(129): reset_l wait
01-01 10:15:36.240: INFO/AwesomePlayer(129): --reset_l wait
01-01 10:15:36.240: INFO/AwesomePlayer(129): --cancel event
01-01 10:15:36.240: INFO/AwesomePlayer(129): --cancel clear ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --cancel source ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --mVideoRenderer clear ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --mLastVideoBuffer release ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --mVideoBuffer->release release ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --mRTSPController->disconnect ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --mRTP clear ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --flushCommands ok
01-01 10:15:36.240: INFO/TimeSource(129): SystemTimeSourceForSync::reset 0 [0]
01-01 10:15:36.240: INFO/AwesomePlayer(129): --mSystemTimeSourceForSync reset ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --mFileSource clear ok
01-01 10:15:36.240: INFO/AwesomePlayer(129): --ok..reset
01-01 10:15:36.250: VERBOSE/MediaPlayer(1154): destructor
01-01 10:15:36.250: VERBOSE/MediaPlayer(1154): disconnect
01-01 10:15:36.250: VERBOSE/MediaPlayerService(129): Client(39) destructor pid = 1154
01-01 10:15:36.250: VERBOSE/AudioSink(129): close
01-01 10:15:36.250: VERBOSE/MediaPlayerService(129): disconnect(39) from pid 1154
01-01 10:15:36.250: VERBOSE/IMediaDeathNotifier(1154): removeObitRecipient
01-01 10:15:36.250: INFO/AudioService(272):  AudioFocus  abandonAudioFocus() from android.media.AudioManager@4056d080com.android.music.MediaPlaybackService$5@4059dec0
01-01 10:15:36.270: ERROR/Parcel(272): Reading a NULL string not supported here.
01-01 10:15:36.270: DEBUG/MediaPlaybackService(1154): Service destroy end
01-01 10:15:37.650: DEBUG/KeyguardUpdateMonitor(272): received broadcast android.intent.action.BATTERY_CHANGED

 

 

 

 

 

 

 

 

posted @ 2012-10-12 13:47  Jimwind  阅读(756)  评论(0编辑  收藏  举报
==============精通*学习*关注==============