1

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

4

3 回答 3

4

通过优化您的代码,其次让您的网络/Internet 在单独的线程(如 AsynTask)上工作。

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

这不会阻止您的用户界面。

希望这有帮助

于 2012-06-22T05:26:45.137 回答
1

这是互联网连接速度慢的问题。我之前在制作用于从 Web 服务器获取数据的应用程序时也遇到过这种情况。因此,有 4 件事可以帮助您解决此问题: (1) 检查是否有任何互联网连接:

    ConnectivityManager cm = (ConnectivityManager)   getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo ni = cm.getActiveNetworkInfo();
    if (ni!=null && ni.isAvailable() && ni.isConnected()) {
        return true;
    } else {
        return false; 
    }

如果没有互联网连接,那么您可以通过对话框通知用户。

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

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

     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。

于 2012-06-22T05:55:28.293 回答
0

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

于 2012-06-22T05:28:10.813 回答