從我的理解,你是靜音的音樂BaseActivity的的onPause打,而不是說寫你的音樂播放活動中
例如:
public class BaseActivity extends AppCompatActivity{
@Override
public void onPause(){
//do things that common for all activities
}
}
public void MusicPlayActivity extends AppCompatActivity{
@Override
public void onPause(){
music.mute()
}
}
這將工作
UPDATE
有多種方法來檢測你的應用程序是否在後臺運行,但其中只有一個是完全可靠的:自己使用Activity.onPause
,Activity.onResume
方法應用程序的 軌道知名度。將「可見性」狀態存儲在某個其他課程中。
例 :實現自定義的應用程序類(注意isActivityVisible()靜態方法):
公共類MyApplication的擴展應用{
public static boolean isActivityVisible() {
return activityVisible;
}
public static void activityResumed() {
activityVisible = true;
}
public static void activityPaused() {
activityVisible = false;
}
private static boolean activityVisible;
}
註冊您的應用程序類在AndroidManifest.xml :
<application
android:name="your.app.package.MyApplication"
android:icon="@drawable/icon"
android:label="@string/app_name" >
將和onResume
添加到項目中的每個Activity(如果您願意,可以爲您的活動創建一個共同的祖先,但是如果您的活動已經從MapActivity/ListActivity等擴展出來,則仍然需要手動編寫以下內容):
@Override
protected void onResume() {
super.onResume();
MyApplication.activityResumed();
}
@Override
protected void onPause() {
super.onPause();
MyApplication.activityPaused();
}
ActivityLifecycleCallbacks被添加到API級別14(Android 4.0)中。您可以使用它們來跟蹤您的應用程序的活動目前是否對用戶可見。詳細信息請參見下面的Cornstalks' answer。
在您的MusicplayActiviti中編寫用於屏蔽音樂播放器的代碼,而不是在BaseActivity中編寫 – droidev
聽起來像是按預期工作。當另一個「Activity」進入前臺時,Activity的'onPause'方法被調用:https://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle –
@CoryCharlton那麼你是什麼建議我使用。我的意圖是在用戶退出應用時靜音並停止「telephoney manager」。由於我不能使用'onPause',我應該使用什麼? –