RESTfulAPI服务我正在寻找一个服务,我可以使用它来调用一个基于Web的RESTAPI。基本上,我想在app init上启动一个服务,然后我希望能够要求该服务请求一个url并返回结果。同时,我希望能够显示一个进度窗口或类似的东西。我目前已经创建了一个使用IDL的服务,我在某个地方读到,您只需要这个来进行跨应用程序的通信,所以认为这些需要去掉,但不确定如何在没有IDL的情况下进行回调。当我撞到post(Config.getURL("login"), values)这个应用程序似乎暂停了一段时间(似乎很奇怪-认为服务背后的想法是运行在不同的线程上!)目前,我有一个带有POST和获取http方法的服务、几个AIDL文件(用于双向通信)、一个ServiceManager,它处理服务的启动、停止、绑定等,我正在动态地创建一个Handler,并根据需要为回调编写特定的代码。我不希望任何人给我一个完整的代码基础来处理,但是一些提示将是非常感谢的。代码(大部分)完整:public class RestfulAPIService extends Service
{final RemoteCallbackList<IRemoteServiceCallback> mCallbacks = new RemoteCallbackList<IRemoteServiceCallback>();
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);}public IBinder onBind(Intent intent) {
return binder;}public void onCreate() {
super.onCreate();}public void onDestroy() {
super.onDestroy();
mCallbacks.kill();}private final IRestfulService.Stub binder = new IRestfulService.Stub() {
public void doLogin(String username, String password) {
Message msg = new Message();
Bundle data = new Bundle();
HashMap<String, String> values = new HashMap<String, String>();
values.put("username", username);
values.put("password", password);
String result = post(Config.getURL("login"), values);
data.putString("response", result);
msg.setData(data);
msg.what = Config.ACTION_LOGIN;
mHandler.sendMessage(msg);
}
public void registerCallback(IRemoteServiceCallback cb) {
if (cb != null)
mCallbacks.register(cb);
}};private final Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
// Broadcast to all clients the new value.
final int N = mCallbacks.beginBroadcast();
for (int i = 0; i < N; i++) {
}
}
}
}
3 回答
慕哥6287543
TA贡献1831条经验 获得超10个赞
另外,当我点击POST(Config.getURL(“登录”),值)时,应用程序似乎暂停了一段时间(似乎很奇怪-认为服务背后的想法是运行在不同的线程上!)
- 3 回答
- 0 关注
- 718 浏览
添加回答
举报
0/150
提交
取消