2012-07-26 68 views
1

我使用ICP以創建活動和服務之間的通信。 我可以使用界面從活動中調用服務的方法。Android:將數據從服務推送到活動

我的問題是,有時我想推動數據從服務到活動,我想從服務中調用活動的方法。例如:updateTextView(String msg);

我不想使用廣播,因爲我讀到它不是非常高效。

我讀了一些關於回調的東西,但我不知道如何創建它以及在哪裏放置它。

謝謝!

回答

0

你可以把你開始服務的包。在要返回到活動的服務中填充該包。然後將該包返回到活動。

0

你可以通過Handler來試試。您在您的活動中創建了一個字段處理程序,而您的Service和onServiceConnected方法中的其他相同類將調用Service的方法setHandler。然後,您可以通過Service的處理程序將消息發送到Activity的處理程序字段。

public class mService extends Service{ 
private myHandler handler; 
..... 
    public void setHandler(myHandler activityHandler){ 
this.handler=activityHandler; 
} 
} 

public class Activity extends Activity{ 
    private myHandler activityHandler; 
    .... 
    public class myHandler extends Handler{ 

     @Override 
     public void handleMessage(Message msg){ 

      switch(msg.what){ 
      //Implement this 
      } 
     } 
} 
     private ServiceConnection mConnection = new ServiceConnection() { 

      @Override 
      public void onServiceConnected(ComponentName className, 
        IBinder service) { 
        ..... 
       mService= binder.getService(); 
       mBound = true; 
       mService.setHandler(dHandler); 
      } 

      @Override 
      public void onServiceDisconnected(ComponentName arg0) { 
       mBound = false; 
      } 
     }; 
} 
相關問題