目前我正在使用 Handlers 调用 Web 服务方法以使其在后台运行。问题是它需要更多时间来给出响应,就性能而言似乎更昂贵。现在我打算使用异步调用,哪个最好? Android 中的处理程序和异步调用之间有什么区别?请帮助我提出最佳解决方案。
为了您的引用,我在这里给出了一些代码 fragment
signIn.setBackgroundResource(R.drawable.signin_press);
changeImage=new Runnable(){
public void run(){
signIn();
}
};
signinHandler.post(changeImage);
当我调用此方法时单击“登录”按钮时,在调用此方法之前,UI 似乎已挂起几分钟。在此方法中,涉及两个昂贵的 Web 服务调用来验证和注册用户。我如何规范应用程序的缓慢。帮助我。
最佳答案
使用 Thread
有一定的优势和 Handler
分别使用 AsyncTask
这实际上取决于您的使用情况,这些好处与损害的分析可能会归结为您。
我会推荐文章 Painless Threading了解 Android 上的线程。
EDIT 以获取有问题的其他信息。
如果我们改编来自 Painless Threading 的代码链接的文章你可以得到类似的东西。
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 线程,则必须进行重构。
关于android - Android 中的处理程序与异步调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5300574/