我有两个活动,家庭作业和更密切。我在家庭作业中播放了一首歌,但当按下一个按钮时,媒体播放器会暂停,并打开closer。在我的onPause函数中,我试图暂停媒体播放器,但它不起作用,activity越接近打开,音乐还在播放。之前,我将它设置为在activity家庭作业的按钮监听器中,媒体播放器暂停,但当我将它设置为onResume时,mediaplayer不会恢复。我想这可能是mediaplayer的范围问题,有人能帮我吗?
package com.cis.lab4;
import java.io.IOException;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.content.res.AssetFileDescriptor;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class Homework extends Activity {
final MediaPlayer mediaplayer = new MediaPlayer();
int media_length;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_homework);
setPlayer();
mediaplayer.start();
Button next = (Button) findViewById(R.id.homeworkContinue);
final Intent openCloser = new Intent(this, EndActivity.class);
next.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
startActivity(openCloser);
}
});
}
public void onResume(Bundle savedInstanceState){
super.onResume();
mediaplayer.seekTo(media_length);
mediaplayer.start();
}
public void onPause(Bundle savedInstanceState){
mediaplayer.pause();
media_length = mediaplayer.getCurrentPosition();
}
public void setPlayer(){
AssetFileDescriptor afd;
try {
afd = getAssets().openFd("rev.mp3");
mediaplayer.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
mediaplayer.prepare();
} catch (IOException e) {
e.printStackTrace();
}
}
}
您没有正确地覆盖onPause。
请在暂停时尝试以下操作:
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
mediaplayer.pause();
media_length = mediaplayer.getCurrentPosition();
}
那应该很管用。您也应该对OnResume执行同样的操作。晚安.
我有点进退两难,不知道该怎么解决。情况是这样的... 我有一个多activity应用程序,播放音乐从它开始的时间到应用程序退出的时间。 但是,如果我使用onPause/onResume来检测activity何时被发送到后台,并在onPause中暂停音乐,在onResume中恢复播放,那么当我启动下一个activity时,音乐会短暂地“跳过”,因为调用startActivity()后,主叫activ
问题内容: 现在,小部件仅具有initeState() 和dispose(),该initeState()在第一次创建小部件时被触发,而dispose()在小部件 被破坏时被触发。有没有一种方法可以检测小部件何时回到 前台?当一个小部件由于另一个 小部件刚刚被前景显示而将要进入后台时?这等效 于Android触发onResume和onPause ,以及ios触发viewWillAppear和view
我的主要活动是装载不同的碎片。此外,可以从MainActivity打开设置-activity。 如果用户只是在片段之间切换,那就万事大吉了。 当打开设置-activity并返回MainActivity时,onResume和onPause会被调用两次。如果用户打开设置-activity并再次返回MainActivity,onResume和onPause将被调用三次。每次用户打开“设置-activit
我有两个片段A和B。在这里,我将从A中替换片段B,然后从B中替换片段A。在这两个片段之间,我将在onPause方法和onResume方法中显示toast,但它是如何不起作用的?有人能用代码解释为什么吗?
我有一个活动需要在启动时打开屏幕(如果关闭)。所以在onCreate中,我有: 使用这个与wakelock在扩频接收器的帮助下,我能够使我的活动显示,每当它从广播接收器开始。 但问题很奇怪,活动生命周期以这种方式调用,onPause()和onResume在开始活动后立即执行 创建时 开始时 继续 打开暂停 onStop(停止) 开始时 继续 所以问题出在启动和恢复调用两次时,停止时也调用,我想在
在使用带有片段的时,在选项卡之间移动时不会调用我们的和方法。我们有什么办法可以从碎片中找出我们是被发现还是被隐藏? 不幸的是,我在、中有逻辑,就像在location services注册一样,在切换选项卡时永远不会停止,因为在退出整个应用程序之前,永远不会调用。