2012-02-01 41 views
1

我的應用程序中的一項活動開始/綁定到服務(也是我的應用程序的一部分)。只要整個應用程序仍處於前臺,我希望該服務能夠繼續運行,而不管哪個活動處於活動狀態。但是我需要確保當整個應用程序暫停時(主頁按鈕/返回按鈕)服務停止。Android:檢測整個應用程序(而不是個人活動)是否暫停/退出?

如何在應用程序級別而不是活動級別上執行此操作?

回答

1

最簡單的方法是有一個單這使每個活動狀態的跟蹤,比如只顯示一個活動爲例:

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方法來找出每個活動的狀態並決定要做什麼。

相關問題