我试图让我的 Android 服务能够将更改发送回活动,所以我试图只使用参数,因为一旦服务启动,活动就没有任何内容。
这是我的 .aidl 文件:
oneway interface IMyServiceCallback {
void dataChanged(out double[] info);
void pathChanged(out List<ParcelableInfo> info);
}
我被困在如何从服务传递数据,以便将其发送到活动。
所以这是在我的服务中,但在 mCallback 中没有任何内容可以让我传入参数,然后将这些参数发送回 Activity。
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
也使用关键字,因为所有通信都从服务流向活动。