RESTfulAPI服务

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++) {
  
                }
            }
        }
    }
泛舟湖上清波郎朗
浏览 674回答 3
3回答

慕哥6287543

另外,当我点击POST(Config.getURL(“登录”),值)时,应用程序似乎暂停了一段时间(似乎很奇怪-认为服务背后的想法是运行在不同的线程上!)不,你必须创造一根线你自己,一个本土化默认情况下,服务在UI线程中运行。
打开App,查看更多内容
随时随地看视频慕课网APP