我使用ICP以创建活动和服务之间的通信。 我可以使用界面从活动中调用服务的方法。Android:将数据从服务推送到活动
我的问题是,有时我想推动数据从服务到活动,我想从服务中调用活动的方法。例如:updateTextView(String msg);
我不想使用广播,因为我读到它不是非常高效。
我读了一些关于回调的东西,但我不知道如何创建它以及在哪里放置它。
谢谢!
我使用ICP以创建活动和服务之间的通信。 我可以使用界面从活动中调用服务的方法。Android:将数据从服务推送到活动
我的问题是,有时我想推动数据从服务到活动,我想从服务中调用活动的方法。例如:updateTextView(String msg);
我不想使用广播,因为我读到它不是非常高效。
我读了一些关于回调的东西,但我不知道如何创建它以及在哪里放置它。
谢谢!
你可以把你开始服务的包。在要返回到活动的服务中填充该包。然后将该包返回到活动。
你可以通过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;
}
};
}