我正在使用Android MediaPlayer類播放正在運行的服務類的MP3文件。如果用戶停止觀看五種活動中的任何一種,我想阻止音樂播放器播放。媒體播放器不會停止播放音頻文件後意圖停止播放
我試着用這裏的代碼發送廣播意圖到保存MediaPlayer的服務。這樣當服務內部的廣播接收機收到這個意圖時,它將調用player.pause()方法來停止播放音樂。
但它不工作。我在查看其中一項活動時啓動了該播放器,然後我離開了應用程序並查看了其他一些應用程序,如Android日曆應用程序。音樂不停止並繼續播放。
有關如何解決此問題的任何想法?
public class Monitor extends Application {
@Override
public void onCreate(){
super.onCreate();
if(activityVisible==false){
Intent intent = new Intent();
intent.setAction("com.sample.test");
sendBroadcast(intent);
}
}
public static boolean isActivityVisible() {
return activityVisible;
}
public static void activityResumed() {
activityVisible = true;
}
public static void activityPaused() {
activityVisible = false;
}
private static boolean activityVisible;
}
這就是我在其他5個活動中所做的每一項活動;
@Override
protected void onResume() {
super.onResume();
Monitior.activityResumed();
}
@Override
protected void onPause() {
super.onPause();
Monitor.activityPaused();
}
聽起來不錯,使用擴展活動的MonitorActivity和所有其他活動擴展了Monitor活動。那麼在這種情況下是否使用擴展應用程序無用的活動? – Kevik
@Kevik是的我看不到它的用處,Application類在活動生命週期之外。它對全局引用很有用,但對於生命週期管理並不真實 – Blundell