1
我的應用程序中的一項活動開始/綁定到服務(也是我的應用程序的一部分)。只要整個應用程序仍處於前臺,我希望該服務能夠繼續運行,而不管哪個活動處於活動狀態。但是我需要確保當整個應用程序暫停時(主頁按鈕/返回按鈕)服務停止。Android:檢測整個應用程序(而不是個人活動)是否暫停/退出?
如何在應用程序級別而不是活動級別上執行此操作?
我的應用程序中的一項活動開始/綁定到服務(也是我的應用程序的一部分)。只要整個應用程序仍處於前臺,我希望該服務能夠繼續運行,而不管哪個活動處於活動狀態。但是我需要確保當整個應用程序暫停時(主頁按鈕/返回按鈕)服務停止。Android:檢測整個應用程序(而不是個人活動)是否暫停/退出?
如何在應用程序級別而不是活動級別上執行此操作?
最簡單的方法是有一個單這使每個活動狀態的跟蹤,比如只顯示一個活動爲例:
public class ActivityStates {
private static ActivityStates ref = null;
private static int firstAct = ACTIVITY_GONE;
public static synchronized ActivityStates getInstance() {
if (ref == null) {
ref = new ActivityStates();
}
return ref;
}
public int getFirstAct() {
return firstAct;
}
public void setFirstAct(int arg) {
this.firstAct = arg;
}
}
.. 和定義一些靜態常量,你可以導入
public static final int ACTIVITY_GONE = 0;
public static final int ACTIVITY_BACKGROUND = 1;
public static final int ACTIVITY_FOREGROUND = 2;
然後在每個活動有一個方法
private void setActivityState(int state){
ActivityStates as = ActivityStates.getInstance();
as.setFirstAct(state);
}
在您的onResume(),在onPause,的onDestroy()當你的onResume進入這些方法,例如有
setActivityState(ACTIVITY_FOREGROUND)
中的onDestroy
(可以設置activitiy的狀態)有
setActivityState(ACTIVITY_GONE)
然後
然後在你的服務中,或者你想要的任何地方,你可以使用get方法來找出每個活動的狀態並決定要做什麼。