据我了解,您正在将 BaseActivity 的 onPause 中播放的音乐静音,而不是将其写入您的音乐播放活动中
Ex :
public class BaseActivity extends AppCompatActivity{
@Override
public void onPause(){
//do things that common for all activities
}
}
public void MusicPlayActivity extends AppCompatActivity{
@Override
public void onPause(){
music.mute()
}
}
这会起作用
UPDATE
有几种方法可以检测您的应用程序是否在后台运行,但只有其中一种是完全可靠的:
使用以下方式自行跟踪应用程序的可见性Activity.onPause
, Activity.onResume
方法。将“可见性”状态存储在其他类中。
Example:实现自定义Application类(注意isActivityVisible()静态方法):
公共类 MyApplication 扩展应用程序 {
public static boolean isActivityVisible() {
return activityVisible;
}
public static void activityResumed() {
activityVisible = true;
}
public static void activityPaused() {
activityVisible = false;
}
private static boolean activityVisible;
}
在 AndroidManifest.xml 中注册您的应用程序类:
<application
android:name="your.app.package.MyApplication"
android:icon="@drawable/icon"
android:label="@string/app_name" >
Add onPause
and onResume
项目中的每个活动(如果您愿意,您可以为您的活动创建一个共同的祖先,但是如果您的活动已经从 MapActivity/ListActivity 等扩展,您仍然需要手动编写以下内容):
@Override
protected void onResume() {
super.onResume();
MyApplication.activityResumed();
}
@Override
protected void onPause() {
super.onPause();
MyApplication.activityPaused();
}
活动生命周期回调 http://developer.android.com/reference/android/app/Application.ActivityLifecycleCallbacks.html在 API 级别 14 (Android 4.0) 中添加。您可以使用它们来跟踪应用程序的活动当前是否对用户可见。查看玉米秆的回答 http://developer.android.com/reference/android/app/Application.ActivityLifecycleCallbacks.html以下为详细信息。