mResultCallback是一个ResultCallback <状态>因此您需要实现该类型的类。文档here,但只有一个需要实现的方法:
public abstract void onResult (Status result)
的标准方法是做到这一点使用匿名类要么在声明mResultCallback或当你使用它作为一个参数。下面是谷歌的BasicRecordingAPI例如一个例子:
Fitness.RecordingApi.subscribe(mClient, DataType.TYPE_ACTIVITY_SAMPLE)
.setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
if (status.isSuccess()) {
if (status.getStatusCode()
== FitnessStatusCodes.SUCCESS_ALREADY_SUBSCRIBED) {
Log.i(TAG, "Existing subscription for activity detected.");
} else {
Log.i(TAG, "Successfully subscribed!");
}
} else {
Log.i(TAG, "There was a problem subscribing.");
}
}
});
如果你想使用一个成员变量,你可以简单地代替分配:
ResultCallback<Status> mResultCallback = new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
...
}
});
当然,你可以定义一个非匿名类,但如果你为每个回调做了这些,你最终会创建很多类。
这是怎么回事... –