나는 여러 가지 활동이있는 안드로이드 앱이 있습니다. 첫 번째 주요 활동은 미디어 플레이어를 사용하여 배경 음악을 시작합니다. 앱이 forground 일 때이 음악을 계속 재생하려면 어떻게해야합니까? onpause 메서드에서 앱을 중지하려고 시도했지만 onresume 메소드에서 시작했지만 모든 작업에서 동일한 코드를 사용하는 것이 번거로웠습니다. 고마워요모든 활동을 통해 미디어 플레이어를 유지하는 방법
답변
응용 프로그램이 포 그라운드가 될 때까지 재생하려면 onPause에서 미디어 플레이어를 중지 할 수 없습니다. 그 이유는 액티비티 A에서 액티비티 B로 이동하면 액티비티 A의 onPause와 액티비티 B의 onResume/onCreate가 호출되기 때문입니다. 구현하려는 것을 달성하려면 응용 프로그램이 백그라운드에서 실행될 때를 확인해야합니다. 이렇게하려면, 다음과 같은 기능을 사용
public boolean isAppOnForeground(final Context context)
{
final ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
final List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
if (appProcesses == null)
{
return false;
}
final String packageName = context.getPackageName();
for (final RunningAppProcessInfo appProcess : appProcesses)
{
if ((appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) && appProcess.processName.equals(packageName))
{
return true;
}
}
return false;
}
그리고 배경을 :
public static boolean isApplicationBroughtToBackground(final Context context)
{
final ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
final List<RunningTaskInfo> tasks = am.getRunningTasks(1);
if (!tasks.isEmpty())
{
final ComponentName topActivity = tasks.get(0).topActivity;
if (!topActivity.getPackageName().equals(context.getPackageName()))
{
return true;
}
}
return false;
}
는,이 함수를 호출하는 기본 활동을 작성하고 자신의 onPause()와 onResume() 메서드를 재정의하려면 확장 활동 대신 기본 활동.
희망이 도움이됩니다.
Shraddha
감사합니다. 나는 그 제안을 좋아한다. super.onResume 이후 또는 이후에 onPause/onResume 메서드에서이 메서드를 호출합니까? – Snake
super로 호출해야합니다. 마찬가지로 @Override public void onPause() { super.onPause(); if (ApplicationStateUtils.isApplicationBroughtToBackground (TabGroupActivity.isis)) { ApplicationStateUtils.setAppBroughtToFront (true); } else { ApplicationStateUtils.setAppBroughtToFront (false); } } – Shraddha
미디어 플레이어를 만든 서비스에 바인딩해야합니다! 서비스에 대한 andriod 개발자 페이지를 확인할 수 있습니다 : http://developer.android.com/reference/android/app/Service.html
일단 미디어 플레이어가 서비스에 바인딩되면 어떤 활동이 활성인지는 중요하지 않습니다.
나는 서비스없이 들으려고했는데, 앱을 배경으로 가져 가면 (잠금으로 말하면) 여전히 음악을 멈출 수 없다. – Snake
- 1. Android : 미디어 플레이어를 호출하는 방법
- 2. 미디어 플레이어를 찾는 사람
- 3. 자바를 사용하여 미디어 플레이어를 구현하는 방법
- 4. 스레드 내에서 실행중인 미디어 플레이어를 중지하는 방법
- 5. 다른 활동에서 미디어 플레이어를 변경하는 방법
- 6. 당신 튜브 형식 미디어 플레이어를 만드는 방법?
- 7. 서비스에서 미디어 플레이어를 중지하는 방법은 무엇입니까?
- 8. PARTIAL_WAKE_LOCK이 내 미디어 플레이어를 죽입니다.
- 9. 모든 브라우저와 호환되는 자체 온라인 미디어 플레이어를 만드는 방법은 무엇입니까?
- 10. 모든 활동을 종료하는 방법?
- 11. Android 미디어 플레이어를 중지 할 수 없습니까?
- 12. 미디어 플레이어를 중지 할 수 없습니까?
- 13. 항상 최신 활동을 계속 유지하는 방법
- 14. jQuery jPlayer - 새로운 플레이어를 재생하기 전에 모든 플레이어를 중지하는 방법?
- 15. iphone MediaPlayerController가 미디어 플레이어를 표시하지 않습니다.
- 16. 뒷쪽 키를 누를 때 Android 활동을 계속 유지하는 방법
- 17. 일부 샘플을 찾고 html로 미디어 플레이어를 포함합니다.
- 18. 대화를 위의 활동을 유지하는 것
- 19. 모든 활동을 통해 서비스를 사용하여 ProgressBar 업데이트
- 20. 삐 이유 아는 미디어 플레이어를 제어합니다
- 21. 미디어 플레이어를 사용하지 않고 비디오를 재생
- 22. 안드로이드 QR 미디어 플레이어를 사용하는 바코드
- 23. WP8 오류 미디어 플레이어를 시작할 수 없습니다.
- 24. Javascript를 사용하여 기본 미디어 플레이어를 가져 오시겠습니까?
- 25. Android : 미디어 플 레이어를 중지하거나 모든 활동을 음소거합니다.
- 26. 로그인 활동을 유지하는 방법은 무엇입니까?
- 27. 하나의 활동을 유지하는 방법은 무엇입니까?
- 28. 스크립트 또는 코드를 사용하여 미디어 플레이어를 제어하는 방법
- 29. 홈 버튼을 눌렀을 때 미디어 플레이어를 중지하는 방법
- 30. 플래시 플레이어를 통해 javacript에 액세스
서비스를 사용 하시겠습니까? –