2013-08-22 89 views
1

首先 - 對我的英語感到抱歉。檢測應用程序關閉/最小化

我剛剛創建了Android應用程序。它包含多個活動,並在此應用程序的背景下播放音樂。當用戶以某種方式離開應用程序時(通過點擊「後退」按鈕,主頁按鈕或其他方式),那麼我需要停止播放音樂。問題在於處理這一刻。我不知道如何。

請幫助我, CD

+0

請提供一些代碼。特別是在音樂開始的地方。 – Nizam

回答

0

按我的理解,你想去做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(); 

    } 
    } 
} 
0

Android沒有辦法檢測應用何時進入後臺。當活動進入後臺時只有回調。

一個例子的解決方案可以打使用服務,並在每一個活動的的onPause和方法的onResume音樂,通知服務暫停/恢復音樂。

1

您可以通過使用檢查時,您的應用程序在後臺:

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); 
} 
相關問題