1

我正在使用 ICP 来创建活动和服务之间的通信。我可以使用接口从活动中调用服务的方法。

我的问题是,有时我想将数据从服务推送到活动,我想从服务调用活动;s 方法。例如:updateTextView(String msg);

我不想使用广播,因为我读到它的性能不是很好。

我读了一些关于回调的东西,但我不知道如何创建它以及把它放在哪里。

谢谢 !

4

2 回答 2

0

您可以放置​​一个用于启动服务的捆绑包。在您想要传回活动的服务中填充该捆绑包。然后将包传递回活动。

于 2012-07-26T23:06:11.543 回答
0

你可以通过 Handler 试试这个。你在你的activity中创建一个字段Handler,你的Service和onServiceConnected方法中的其他同一个类调用一个Service的方法setHandler。然后,您可以通过 Service 的 handler 向 Activity 的 handler 字段发送消息。

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;
            }
        };
}
于 2012-07-26T23:24:15.770 回答