2015-05-22 52 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

你的意思「雲不是」 –

相關問題