Androidサービスで変更をアクティビティに返送できるようにしようとしています。サービスが開始されると、アクティビティからは何も送信されないため、パラメータを使用しようとしています。
これが私の.aidlファイルです:
oneway interface IMyServiceCallback {
void dataChanged(out double[] info);
void pathChanged(out List<ParcelableInfo> info);
}
サービスからデータを渡す方法に固執しているので、データはアクティビティに送信されます。
したがって、これは私のサービスにありますが、mCallbackには、アクティビティに送り返されるパラメータを渡すことができるものはありません。
private final IMyServiceCallback.Stub mCallback = new IMyServiceCallback.Stub() {
@Override
public void dataChanged(double[] info) throws RemoteException {
}
@Override
public void pathChanged(List<ParcelableInfo> info) throws RemoteException {
}
};
だから、mCallback.dataChanged()
どこに戻るのかわからないnew double[] { 1.0, 1.1};
。
アクティビティ側では、渡されたパラメータがサービスから必要なデータであると想定しているため、私がやろうとしていることはです。
private IMyServiceCallback mCallback = new IMyServiceCallback.Stub() {
@Override
public void dataChanged(double[] info) throws RemoteException {
mHandler.sendMessage(mHandler.obtainMessage(DATA_MSG, info));
}
@Override
public void pathChanged(
List<Parcelable> info)
throws RemoteException {
mHandler.sendMessage(mHandler.obtainMessage(PATH_MSG, info));
}
};
oneway
すべての通信がサービスからアクティビティに流れるため、このキーワードも使用しています。