首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果一个活动需要很长时间来加载,它会要求强制关闭,如何解决这个问题?

如果一个活动需要很长时间来加载,它会要求强制关闭,如何解决这个问题?
EN

Stack Overflow用户
提问于 2012-06-22 13:23:39
回答 3查看 2.4K关注 0票数 1

我的应用程序中几乎所有的活动都需要与web服务器交互来获取数据,然后加载活动屏幕。因此,在任何时候,如果互联网速度很慢,它会花费很多时间,在大约12-15秒后,它会显示“无法加载,强制关闭/等待”。应用程序如何避免这种情况?他们遵循的解决方案是什么,当前3-4个活动正常工作时(当网络良好时),那么一些活动需要很长时间(因为糟糕的互联网/如果互联网消失了)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-22 13:26:45

通过优化你的代码,第二,在一个单独的线程(如AsynTask)上做你的网络/互联网工作。

链接:http://developer.android.com/reference/android/os/AsyncTask.html

这将不会阻止您的UI。

希望这对你有所帮助

票数 4
EN

Stack Overflow用户

发布于 2012-06-22 13:55:28

这是一个互联网连接速度慢的问题。早些时候,我在开发一个用于从web服务器获取数据的应用程序时也遇到过这个问题。所以在这件事上有四件事可以帮助你:(1)检查是否有任何互联网连接:

代码语言:javascript
运行
复制
    ConnectivityManager cm = (ConnectivityManager)   getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo ni = cm.getActiveNetworkInfo();
    if (ni!=null && ni.isAvailable() && ni.isConnected()) {
        return true;
    } else {
        return false; 
    }

如果没有internet连接,则可以通过对话框通知用户。

(2)如果有internet连接,但速度很慢,那么您可以放入一些代码,用于等待响应一段时间,然后向用户显示一个对话框,用于等待或中止请求。

(3)还有一件非常有用的事情-使用slide_in_left和slide_out_right动画样式代替fade_in和fade_out进行意图之间的转换。它的帮助很大,屏幕很少变黑。

代码语言:javascript
运行
复制
     try    {           
        Intent yourIntent = new Intent(view.getContext(), YourActivity.class);      
        startActivityForResult(yourIntent, 0);      
        overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);        
    } catch(Exception ex) {
    }

(4)使用AsyncTask将请求发送到web。

票数 1
EN

Stack Overflow用户

发布于 2012-06-22 13:28:11

在拨打电话之前,您可以检查是否存在现有的互联网或数据连接。您还应该能够指定尝试和加载文件的特定时间长度,然后显示错误或根据需要重试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11150583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档