2012-08-13 29 views
0

我有一個已綁定到該服務的活動。 當我開始活動時,它綁定到服務並從服務中的變量獲取值。所以我可以在我的活動中顯示價值。從活動中的綁定服務永久獲取變量值

現在我想永久讀取服務中變量的值。不僅一次,我的活動的onCreate被調用。 我該怎麼做? 這是什麼正確的方法?

回答

1

有幾種方法可以做到這一點。一個比較簡單的方法是使用Handler觸發本身定期

public class MyActivity extends Activity { 

    private static final int UPDATE_RATE_IN_MS = 500; 
    private static final int MSG_UPDATE = 0; 

    private Handler mHandler; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     mHandler = new Handler() { 
      @Override 
      public void handleMessage(Message msg) { 
       doUpdate(); 
       mHandler.sendEmptyMessageDelayed(MSG_UPDATE, UPDATE_RATE_IN_MS); 
      } 
     }; 
    } 

    @Override 
    protected void onStart() { 
     super.onStart(); 
     mHandler.sendEmptyMessageDelayed(MSG_UPDATE, UPDATE_RATE_IN_MS); 
    } 

    @Override 
    protected void onStop() { 
     super.onStop(); 
     mHandler.removeMessages(MSG_UPDATE); 
    } 

    private void doUpdate() { 
     // do whatever you need here. 
    } 
} 

你會把值的更新中doUpdate()在這個例子中。

+0

太棒了!奇蹟般有效。謝謝 :-) – venni 2012-08-13 22:03:11