本帖最后由 Angleyuhj 于 2012-03-24 17:16:31 编辑

解决方案 »

  1.   

    额 神奇的android 求回答
      

  2.   


    拔掉TF卡   系统会发送一个广播,用Gallery 去捕获该广播    在自己播放视频代码处理该广播      不一定非要在EJECT消息处理
      

  3.   


    拔掉TF卡   系统会发送一个广播,用Gallery 去捕获该广播    在自己播放视频代码处理该广播      不一定非要在EJECT消息处理
    捕获广播是没有用的。如果不能从EJECT中关闭文件,系统一样会kill掉这个进程。
      

  4.   


    现在有一种办法是重写一个写入流
    重写wirte方法
    fileOutPutSteam有一个getFD().sync();
    方法。调用它,然后抛异常。不过现在还是会杀进程。还没解决。
      

  5.   

    你说的EJECT不知道是什么我知道你的设备,读取tf之后,挂载的位置是/mnt/sdcard/extsd文件夹,你将tf卡拔掉之后,那么该文件夹将不再挂载tf卡,里面内容为空,你不能播放视频了!会报错的!
      

  6.   

    我也遇到同样的问题,系统直接杀进程,求解决
    D/Vold    (  910): wuxingyu : vm handleBlockEvent
    D/DirVolume(  910): wuxingyu : handleBlockEvent begin
    D/MountService( 1276): sendStorageIntent Intent { act=android.intent.action.MEDIA_BAD_REMOVAL dat=file:///mnt/sdb/sdb1 (has extras) }
    V/MediaPlayerService(  919): [2] notify (0x1e70b50, 3, 2, 0)
    D/MountService( 1276): wuxingyu : use the mConnectorSpec[1]
    D/VoldCmdListener(  910): volume unmount_bad /mnt/sdb/sdb1 force_and_revert
    D/Vold    (  910): Volume sdb1 state changing 4 (Mounted) -> 5 (Unmounting)
    V/MediaPlayerService(  919): [2] notify (0x1e70b50, 3, 2, 0)
    I/USBReceiver( 1870): ---------USBReceiver---ACTION_MEDIA_UNMOUNTED-/mnt/sdb/sdb1
    I/USBReceiver( 1870): mHandler == null
    V/MediaPlayerService(  919): [2] notify (0x1e70b50, 3, 2, 0)
    V/MediaPlayerService(  919): [2] notify (0x1e70b50, 3, 2, 0)
    W/Vold    (  910): Failed to unmount /mnt/sdb/sdb1 (Device or resource busy, retries 9, action 0)
    V/android hall( 1856): sdcard status changed!
    V/cpeng @@@@@@@@@@@( 1856): start check media status.
    V/cpeng @@@@@@@@@@@( 1856): media status : MEDIA_MOUNTED
    V/cpeng   ( 1856): finish check media status.
    E/ProcessKiller(  910): Process com.voole.epg (3311) has open file /mnt/sdb/sdb1/voole_video/vooledownload.db
    W/ProcessKiller(  910): Sending SIGHUP to process 3311
    D/Zygote  (  917): Process 3311 terminated by signal (15)
    W/InputDispatcher( 1276): channel '41734960 com.voole.epg/com.voole.epg.view.movies.home.HomeActivity (server)' ~ Consumer closed input channel or an error occurred.  events=0x8
    E/InputDispatcher( 1276): channel '41734960 com.voole.epg/com.voole.epg.view.movies.home.HomeActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
    W/InputDispatcher( 1276): Attempted to unregister already unregistered input channel '41734960 com.voole.epg/com.voole.epg.view.movies.home.HomeActivity (server)'
    I/ActivityManager( 1276): Process com.voole.epg (pid 3311) has died.
    I/WindowManager( 1276): WIN DEATH: Window{41734960 com.voole.epg/com.voole.epg.view.movies.home.HomeActivity paused=false}
    I/ActivityManager( 1276): haveBgApp:true app.setAdj:0
    W/ActivityManager( 1276): Scheduling restart of crashed service com.voole.epg/.download.VDownloadService in 5000ms
    I/WindowManager( 1276): WIN DEATH: Window{416db508 com.voole.epg/com.voole.epg.view.movies.movie.MovieActivity paused=false}
    I/WindowManager( 1276): WIN DEATH: Window{416b45a8 com.voole.epg/com.voole.epg.view.movies.account.AccountActivity paused=false}
    I/WindowManager( 1276): WIN DEATH: Window{417445c8 com.voole.epg/com.voole.epg.download.DownManagerActivity paused=false}
    I/WindowManager( 1276): WINDOW DIED Window{41734960 com.voole.epg/com.voole.epg.view.movies.home.HomeActivity paused=false}
    W/ActivityManager( 1276): Force removing ActivityRecord{41714048 com.voole.epg/.download.DownManagerActivity}: app died, no saved state
    E/hwcomposer(  916): hisicomposeimp fail!