我正在使用媒体播放器开发应用程序。我用两种布局处理了屏幕方向。我使用了 onsavedInstancestate 和 onrestoreinstancesstate。在屏幕旋转时,布局发生变化,媒体播放器状态被保留,但 UI 没有响应。
我已经保存并保留了 mediaplayer 对象的状态
public Object onRetainNonConfigurationInstance()
{
HashMap<String,Object> player = new HashMap<String,Object>();
MediaPlayer instance = mp;
mp = null;
MediaPlayer instance1 = mp1;
mp1 = null;
player.put("mp", instance);
player.put("mp1", instance1);
return player;
}
if(getLastNonConfigurationInstance()!=null)
{
playerhandle = (HashMap<String, Object>) getLastNonConfigurationInstance();
mp = (MediaPlayer)playerhandle.get("mp");
if (mp == null)
{
mp = new MediaPlayer();
}
mp1 = (MediaPlayer)playerhandle.get("mp1");
if (mp1 == null)
{
mp1 = new MediaPlayer();
}
}
并且还保留了 onsavedinstancestate 和 onrestoreinstancestate 的数据。媒体播放器保留屏幕方向后的状态(音频播放而不解释屏幕方向),但在方向更改后 UI 没有响应。无法解决问题......