我是Android原生开发的新手。虽然跟踪代码我找到了这段代码,但无法理解它是做什么的。
我怀疑这些是,
1.)如果我们在Activity.java中使用接口方法,我不应该让Activity.java使用implement关键字来实现Icommand Interface中提到的那些方法。
2.)如果没有那么它在做什么here.is变量onsuccess是接口的对象或实例?
请有人帮我理解这一点。
public interface ICommand<T, S> {
public T execute(S params) throws Exception;
}
public class Activity extends BaseActivity {
private ICommand<Void, String> onSuccess = new ICommand<Void, String>() {
@Override
public Void execute(String params) throws Exception {
Activity.this.setPreferenceValue(Constants.PREF_PHONENUMBER, params);
Activity.this.setPreferenceValue(Constants.PREF_HASPHONENUMBER, "true");
Activity.this.finish();
return null;
}
};
}
答案 0 :(得分:0)
是的,你必须实现你的接口,并覆盖你所拥有的方法,就是这个功能。
它作为回调函数,所以例如你启动一个新的Thread,你可以使用CallBack并传递给你的Thread或AsyncTask然后在那个新的Class中调用接口方法。这会自动调用您从接口覆盖的活动方法。在某些任务之后更新某些UI非常有用。
当然你也可以使用内部类Callback Listener,但这不是值得推荐的。使用工具和覆盖函数代码更易读。
希望有所帮助。
问候。