首先 - 对不起我的英语。
我刚刚创建了 Android 应用程序。它包含几个活动,并在此应用程序的背景中播放音乐。当用户以某种方式(通过单击“返回”按钮、主页按钮或其他方式)从应用程序中退出时,我需要停止播放音乐。问题是如何处理这一刻。我不知道怎么做。
请帮帮我,CD
首先 - 对不起我的英语。
我刚刚创建了 Android 应用程序。它包含几个活动,并在此应用程序的背景中播放音乐。当用户以某种方式(通过单击“返回”按钮、主页按钮或其他方式)从应用程序中退出时,我需要停止播放音乐。问题是如何处理这一刻。我不知道怎么做。
请帮帮我,CD
您可以使用以下命令检查应用程序何时处于后台:
1.
public boolean isApplicationSentToBackground(final Context context) {
try {
ActivityManager am = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> tasks = am.getRunningTasks(1);
if (!tasks.isEmpty()) {
ComponentName topActivity = tasks.get(0).topActivity;
if (!topActivity.getPackageName().equals(
context.getPackageName())) {
return true;
}
}
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
然后在你的 onPause 中你可以调用这个方法,并且可以停止声音。在 onRestart() 中,您可以启动声音。
2.您可以覆盖 OnBackPressed() 方法您可以在此方法中停止声音
3.另外,您可以使用keyEvent
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_BACK) {
//Your Code here
// You can stop the sound here also
}
return super.onKeyDown(keyCode, event);
}
你应该停止播放音乐onPause()
。开始播放音乐onResume()
。但要遵守谷歌规定的指导方针:http ://android-developers.blogspot.com/2011/11/making-android-games-that-play-nice.html
Android 无法检测应用程序何时进入后台。当 Activity 进入后台时只有回调。
一个示例解决方案可能是使用服务播放音乐,并在每个 Activity 的 onPause 和 onResume 方法中,通知服务暂停/恢复音乐。
据我了解,你想做这样的事情
如果是这样,那么使用下面的代码..这里的级别是媒体播放器的对象。
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
if (level != null) {
if (level.isPlaying()) {
level.stop();
}
level.release();
level = null;
}
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
if (level != null) {
if (level.isPlaying()) {
level.pause();
}
}
}