2013-07-17 14 views
0

我是一名初學者,已閱讀關於服務和廣播接收器組件的文章。 但我現在不是真的,在這裏做什麼。 我有一個服務(類:ExampleService)總是變化的變量k:Android:BroacastReceiver的服務價值

@覆蓋 保護無效onHandleIntent(意向意圖){

while (k < 1000) { 

    if(forward==true){ 
     k++; 
    }else{ 
    k--;  
    } 


    synchronized (this) { 

     try { 

      wait(100); 
     } catch (InterruptedException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 
} 

k = 0; 
this.stopSelf(); 

} 

public long getInt(){ 
    return k; 
} 

和我的廣播接收器:

BroadcastReceiver broadi=new BroadcastReceiver(){ 

@Override 
public void onReceive(Context arg0, Intent arg1) { 
    // TODO Auto-generated method stub 
    ExampleIntentService se=new ExampleIntentService(); 

      text.setText("Count:"+String.valueOf(se.getInt())); 
} 

}; 

所以我創建了一個服務對象,並嘗試使用我的'getInt()'方法來獲取該值。 它總是返回0,我不知道爲什麼。 任何提示?

回答

0

當你調用

ExampleIntentService se=new ExampleIntentService(); 

您正在創建類的新istance,你是不是指服務的運行實例。我認爲你有兩次機會:

  • 使k和它的getter方法靜態。使其成爲靜態k將不會變成實例相關,您可以通過調用

    來讀取它的值。ExampleIntentService.getInt();

  • 發送一個廣播,可以由你的廣播接收器接收,每次更改k時間,但我認爲這是由瞬間大量的工作,你可以在第二發送10廣播100秒

+0

它的工作原理!非常感謝你! – Hayabusa