如何创建带有回调的Android服务?
我正在为我的应用程序开发一个服务,其目的是允许轻松访问我们正在运行的各种web服务。该服务用于在希望使用它的任何应用程序中维护登录状态,因此用户只需在服务首次启动时登录一次 让服务异步运行并在完成时回调应用程序的最佳方法是什么。目前我正在使用静态类来扩展线程,例如如何创建带有回调的Android服务?,android,Android,我正在为我的应用程序开发一个服务,其目的是允许轻松访问我们正在运行的各种web服务。该服务用于在希望使用它的任何应用程序中维护登录状态,因此用户只需在服务首次启动时登录一次 让服务异步运行并在完成时回调应用程序的最佳方法是什么。目前我正在使用静态类来扩展线程,例如 private static class LogInAsync extends Thread { private Handler handler; private CallbackWrapper wrapper;
private static class LogInAsync extends Thread {
private Handler handler;
private CallbackWrapper wrapper;
private Context context;
protected LogInAsync(Context context, Handler handler, CallbackWrapper wrapper) {
this.handler = handler;
this.wrapper = wrapper;
this.context = context;
}
public void run() {
loginState = true;
wrapper.setResponse(Types.NOTHING, Functions.LOG_IN, null);
handler.post(wrapper);
}
}
为了方便打电话
public static void logIn(Context context, ResponseListener callback) {
(new LogInAsync(context, new Handler(), new CallbackWrapper(callback))).start();
}
但是这些函数只能由我自己的应用程序调用。我希望任何人都能够进行一行或两行函数调用,并且能够轻松地处理响应,最好是使用简单的回调方法
我认为必须使用意图来启动线程,但如果我这样做,我就无法传递回调。您需要使用
服务
对象,然后您可以将活动绑定到它,它们将能够与您的服务通信
阅读以下教程:-
-在Google IO上,有一个关于构建REST web应用程序的会议。也许这将帮助您找到应用程序的最佳体系结构。使用线程不好(视频中解释了原因)
谢谢,但我以前使用过AIDL,据我所知,没有办法通过我的回调接口。谢谢,这段视频非常有用,我喜欢他使用Intents启动服务。但有一点我还不清楚。如何执行活页夹回调,服务如何告诉帮助程序操作已完成?您可以传递一个接口以用作回调。检查谷歌I/O应用程序。搜索丢失的文件