我的应用程序中几乎所有的活动都需要与web服务器交互来获取数据,然后加载活动屏幕。因此,在任何时候,如果互联网速度很慢,它会花费很多时间,在大约12-15秒后,它会显示“无法加载,强制关闭/等待”。应用程序如何避免这种情况?他们遵循的解决方案是什么,当前3-4个活动正常工作时(当网络良好时),那么一些活动需要很长时间(因为糟糕的互联网/如果互联网消失了)
发布于 2012-06-22 13:26:45
通过优化你的代码,第二,在一个单独的线程(如AsynTask)上做你的网络/互联网工作。
链接:http://developer.android.com/reference/android/os/AsyncTask.html
这将不会阻止您的UI。
希望这对你有所帮助
发布于 2012-06-22 13:55:28
这是一个互联网连接速度慢的问题。早些时候,我在开发一个用于从web服务器获取数据的应用程序时也遇到过这个问题。所以在这件事上有四件事可以帮助你:(1)检查是否有任何互联网连接:
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进行意图之间的转换。它的帮助很大,屏幕很少变黑。
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-22 13:28:11
在拨打电话之前,您可以检查是否存在现有的互联网或数据连接。您还应该能够指定尝试和加载文件的特定时间长度,然后显示错误或根据需要重试。
https://stackoverflow.com/questions/11150583
复制相似问题