2016-12-19 16 views
1

Я хочу показать видео на всплывающем окне от службы, но когда я запустить службу моего сбой приложения показывает эту ошибку: -приложение, показывающее ошибку, неспособное добавить окно - токен null недействителен; работает ли ваша деятельность?

android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running? 

Моего код сервис видеопроигрывателя здесь:

VideoExtractor VideoExtractor = VideoExtractor.create(); 
    VideoExtractor.extract("FTD9aA4S5BY").enqueue(new Callback<VideoExtractionResult>() { 
     @Override 
     public void onResponse(Call<YouTubeExtractionResult> call, Response<VideoExtractionResult> response) { 
      Log.d(TAG, response.body().getVideoUri().toString()); 
      final VideoView mVideoview = (VideoView)mView.findViewById(R.id.youtubePlayer); 
      mVideoview.setMediaController(new MediaController(PlayerService.this)) 
      mVideoview.setVideoURI(response.body().getVideoUri()); 
      mVideoview.start(); 

      WindowManager.LayoutParams params = new WindowManager.LayoutParams(
        WindowManager.LayoutParams.WRAP_CONTENT, 
        WindowManager.LayoutParams.WRAP_CONTENT, 
        WindowManager.LayoutParams.TYPE_PHONE, 
        WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, 
        PixelFormat.TRANSLUCENT); 

      params.gravity = Gravity.TOP | Gravity.LEFT; 
      params.x = 0; 
      params.y = 100; 
      mWindowManager.addView(mView, params); 
     } 

     @Override 
     public void onFailure(Call<YouTubeExtractionResult> call, Throwable t) { 

     } 
    }); 

Я вызываю эту службу из метода myactivity on resume.

стека Ошибка этой ошибки здесь:

android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running? 
                     at android.view.ViewRootImpl.setView(ViewRootImpl.java:574) 
                     at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:310) 
                     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:86) 
                     at android.widget.MediaController.show(MediaController.java:379) 
                     at android.widget.MediaController.show(MediaController.java:329) 
                     at android.widget.VideoView$2.onPrepared(VideoView.java:454) 
                     at android.media.MediaPlayer$EventHandler.handleMessage(MediaPlayer.java:2815) 
                     at android.os.Handler.dispatchMessage(Handler.java:102) 
                     at android.os.Looper.loop(Looper.java:148) 
                     at android.app.ActivityThread.main(ActivityThread.java:5539) 
                     at java.lang.reflect.Method.invoke(Native Method) 
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

Почему я получаю эту ошибку и как решить эту проблему.

+0

Попробуйте здесь ответ http://stackoverflow.com/questions/18662239/android-view-windowmanagerbadtokenexception-unable-to-add-window-on-buider-s/27737641#27737641 – Raghavendra

+0

опубликовать код активности –

+0

Моя ошибка добавляя mediacontroller к просмотру видео, когда я удаляю этот eroor, который не происходит. – sasuke

ответ

1

"WindowManager $ BadTokenException" эта ошибка возникает, когда вы используете диалоговое окно с окном, и перед тем, как завершить свою деятельность, эта ошибка возникает. поэтому вы должны поставить условие, что действие уничтожено или нет, тогда используйте контекст.

+0

Но здесь медиа-контроллер вызывает проблему. – sasuke

+0

Возможно, это происходит потому, что вы пытаетесь установить высоту в окне, в то время как она содержит объект ** youtube **. Удалите этот код и повторите попытку. –