2015-05-22 54 views
0

我在我的android应用程序中有两个活动。我在两个活动中都在视频视图中播放视频。当我转到第二个活动时,它开始播放videoview上的视频。但是,当我返回到以前的活动,尝试与UI交互,我得到:活动com.exe.sample已泄露IntentReceiver [email protected]

java.lang.IllegalArgumentException异常:接收未注册: [email protected]

而且我得到:

活动com.exe.sample.Test1泄漏了最初在这里注册的IntentReceiver [email protected]。你是否错过了对unregisterReceiver()的调用?

第二项活动。

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    setContentView(R.layout.activity_main); 
    super.onCreate(savedInstanceState); 
    Button b=(Button)findViewById(R.id.button1); 
    VideoView videoview = (VideoView) findViewById(R.id.videoView1); 
    videoview.setVideoURI(Uri.parse(url)); 
    videoview.setOnPreparedListener(new OnPreparedListener() { 
     public void onPrepared(MediaPlayer mp) { 
      mp.start(); 

     } 
    }); 
    b.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
     startActivity(new Intent(MainActivity.this, Test1.class)); 
     } 
    }); 
} 

第二活动码:

public class Test1 extends Activity { private VideoView videoview; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    setContentView(R.layout.tset); 
    videoview = (VideoView) findViewById(R.id.videoView2); 
    videoview 
      .setVideoURI(Uri 
        .parse(url)); 
    videoview.setOnPreparedListener(new OnPreparedListener() { 
     public void onPrepared(MediaPlayer mp) { 
      mp.start(); 

     } 
    }); 

    super.onCreate(savedInstanceState); 
} 

回答

1

附加mp.release()在Test1.onStop()。 日志显示'[email protected]'是MediaPlayer的匿名内部BroadcastReceiver类,它应该在MediaPlayer.release()中未注册。

+0

我无法设置mp.release() – user3678419

+0

你的意思“云不是” –

相关问题