首先 - 對我的英語感到抱歉。檢測應用程序關閉/最小化
我剛剛創建了Android應用程序。它包含多個活動,並在此應用程序的背景下播放音樂。當用戶以某種方式離開應用程序時(通過點擊「後退」按鈕,主頁按鈕或其他方式),那麼我需要停止播放音樂。問題在於處理這一刻。我不知道如何。
請幫助我, CD
首先 - 對我的英語感到抱歉。檢測應用程序關閉/最小化
我剛剛創建了Android應用程序。它包含多個活動,並在此應用程序的背景下播放音樂。當用戶以某種方式離開應用程序時(通過點擊「後退」按鈕,主頁按鈕或其他方式),那麼我需要停止播放音樂。問題在於處理這一刻。我不知道如何。
請幫助我, CD
你應該停止播放音樂onPause()
。開始播放音樂onResume()
。但是obay由谷歌規定的guidlines:http://android-developers.blogspot.com/2011/11/making-android-games-that-play-nice.html
按我的理解,你想去做this Question
東西如果是的話請使用以下 code..here 水平是媒體播放器的對象。
@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();
}
}
}
Android沒有辦法檢測應用何時進入後臺。當活動進入後臺時只有回調。
一個例子的解決方案可以打使用服務,並在每一個活動的的onPause和方法的onResume音樂,通知服務暫停/恢復音樂。
您可以通過使用檢查時,您的應用程序在後臺:
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.You可以覆蓋OnBackPressed()方法,你可以在這個方法中
3.Also到此爲止的聲音,你可以使用的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);
}
請提供一些代碼。特別是在音樂開始的地方。 – Nizam