我的应用程序中的几乎所有活动都需要与Web服务器交互以获取数据,然后加载活动屏幕。所以在任何时候如果互联网速度很慢,需要花费很多时间,经过大约12-15秒,它会说“无法加载,强制关闭/等待”。应用如何避免这种情况?他们遵循的解决方案是什么,当第3-4次活动正常工作时(当网络良好时),然后一些活动需要很长时间(因为互联网不好/如果互联网不见了)
答案 0 :(得分:4)
通过优化代码,然后在单独的线程(如AsynTask)上进行网络/ Internet工作。
链接:http://developer.android.com/reference/android/os/AsyncTask.html
这不会阻止你的用户界面。
希望这个帮助
答案 1 :(得分: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。
答案 2 :(得分:0)
您可以在拨打电话之前检查是否存在互联网或数据连接。您还应该能够指定一定的时间来尝试加载文件,然后显示错误或根据需要再试一次。