我使用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;
}
};
}