Android 中的处理程序与异步调用

2024-06-20

目前我正在使用处理程序来调用 Web 服务方法以使其在后台运行。问题是它需要更多的时间来给出响应,在性能方面似乎更昂贵。现在我计划使用异步调用,哪一个是最好的? Android 中的处理程序和异步调用有什么区别?请帮我想出一个最好的解决方案。

我在这里给出一些代码片段供您参考

signIn.setBackgroundResource(R.drawable.signin_press);
changeImage=new Runnable(){
     public void run(){                                 
            signIn();
        }
    };      
signinHandler.post(changeImage);

当单击“登录”按钮时,我正在调用此方法,看起来 UI 在调用该方法之前已挂起几分钟。在此方法中,涉及两个昂贵的 Web 服务调用来验证和注册用户。我如何使应用程序的缓慢正常化。帮我。


使用有一定的优点Thread http://developer.android.com/reference/java/lang/Thread.html and Handler http://developer.android.com/reference/android/os/Handler.html分别使用AsyncTask http://developer.android.com/reference/android/os/AsyncTask.html这实际上取决于您的使用情况,并且这些好处与坏处的分析可能会取决于您。

我会推荐这篇文章无痛穿线 http://developer.android.com/guide/components/processes-and-threads.html了解一下 Android 上的线程。

EDIT有关更多信息。

如果我们调整代码无痛穿线 http://developer.android.com/guide/components/processes-and-threads.html链接的文章你可以得到类似的东西。

  new Thread(new Runnable() {
    public void run() {
      signIn();
      signinHandler.post(new Runnable() {
        public void run() {
          //TODO: Something to notify of login complete / continue processing.
        }
      });
    }
  }).start();

TODO中需要继续或者通知执行,我不知道当前处理的是什么signIn()因此,如果它跨越 UI 线程,则必须进行重构。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 中的处理程序与异步调用 的相关文章

随机推荐