android显示错误

android显示错误,android,Android,我的android应用程序显示了一个发送密钥超时的错误。我并不是每次触摸屏幕都会这样。我在应用程序启动几秒钟后发生。原因是什么??我使用了4个ImageView,oncreate()。当我触摸imageview时,它必须通过GPRS从服务器下载图像。我在onCreate()方法中实现了主线程的完整操作。这是我的问题吗??我应该实现onStart()、onResume()、onPause()、onRestart()和onDestroy()方法吗 public void onCreate(Bundl

我的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){ //行动行动
}

在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");
     }
 }