android显示错误
我的android应用程序显示了一个发送密钥超时的错误。我并不是每次触摸屏幕都会这样。我在应用程序启动几秒钟后发生。原因是什么??我使用了4个ImageView,oncreate()。当我触摸imageview时,它必须通过GPRS从服务器下载图像。我在onCreate()方法中实现了主线程的完整操作。这是我的问题吗??我应该实现onStart()、onResume()、onPause()、onRestart()和onDestroy()方法吗 public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main) imView.setOnTouchListener(新视图.OnTouchListener(){ 公共布尔onTouch(视图、运动事件){ if(event.getAction()==MotionEvent.ACTION\u向下){ //下行操作 }else if(event.getAction()==MotionEvent.ACTION\u UP){ //行动行动android显示错误,android,Android,我的android应用程序显示了一个发送密钥超时的错误。我并不是每次触摸屏幕都会这样。我在应用程序启动几秒钟后发生。原因是什么??我使用了4个ImageView,oncreate()。当我触摸imageview时,它必须通过GPRS从服务器下载图像。我在onCreate()方法中实现了主线程的完整操作。这是我的问题吗??我应该实现onStart()、onResume()、onPause()、onRestart()和onDestroy()方法吗 public void onCreate(Bundl
}在UI线程中,您不能执行需要花费任何显著时间的处理(例如从网络下载东西),所有这些方法都是在UI线程中调用的
您必须将这部分功能移动到服务或在活套线程中执行。我相信您收到了一条R(应用程序无响应)消息 我建议您在单独的线程中下载映像。使用AsyncTask执行此类下载任务,避免在主线程的onCreate()或任何其他生命周期方法中下载数据
private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> {
protected Long doInBackground(URL... urls) {
int count = urls.length;
long totalSize = 0;
for (int i = 0; i < count; i++) {
totalSize += Downloader.downloadFile(urls[i]);
publishProgress((int) ((i / (float) count) * 100));
}
return totalSize;
}
protected void onProgressUpdate(Integer... progress) {
setProgressPercent(progress[0]);
}
protected void onPostExecute(Long result) {
showDialog("Downloaded " + result + " bytes");
}
}
私有类下载文件任务扩展异步任务{
受保护的长doInBackground(URL…URL){
int count=url.length;
长totalSize=0;
for(int i=0;i
检查链接您至少可以做两件事来获得一些结果:发布更多信息(日志、代码)并接受一些回答。请不要为此使用服务。使用异步任务我将服从您。我的主要观点是将其从UI线程中取出。
private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> {
protected Long doInBackground(URL... urls) {
int count = urls.length;
long totalSize = 0;
for (int i = 0; i < count; i++) {
totalSize += Downloader.downloadFile(urls[i]);
publishProgress((int) ((i / (float) count) * 100));
}
return totalSize;
}
protected void onProgressUpdate(Integer... progress) {
setProgressPercent(progress[0]);
}
protected void onPostExecute(Long result) {
showDialog("Downloaded " + result + " bytes");
}
}