2010-11-02 4 views
0

В моем приложении Android я использую экран загрузки, обработанный Async task.In в этой задаче я хотел бы отображать предупреждение всякий раз, когда обновленная версия существует на сервере. Не могли бы вы сообщить мне, есть ли способ, которым я могу это сделать в android.показать предупреждение внутри Async doinbackground в android

Код

общественного класса Task расширяет AsyncTask {

// can use UI thread here 
    protected void onPreExecute() { 
     // this.dialog.setMessage("Loading..."); 
     prgbar.setVisibility(View.VISIBLE); 
     // this.dialog.show(); 
    } 

    @Override 
    protected Void doInBackground(Void... params) { 
     try { 
       final UpGradation upgrade=(UpGradation) ParserServiceImpl.getUpgrade(); //check this method name correctly. 
       if(upgrade != null) 
       { 

        try { 
         pInfo = getPackageManager().getPackageInfo("com.docomo.aptv", PackageManager.GET_META_DATA); 
         String temp = pInfo.versionName; 
         int pversion= pInfo.versionCode; 
         int upversion=Integer.parseInt(upgrade.getVersion()); 
         Log.i("VALUE RETURNED",""+pversion); 
         Log.i("jayantha","version name"+pInfo.versionName); 
         Log.i("jayanth","version code"+pInfo.versionCode); 

         if(pversion!=upversion) 
         { 

          final AlertDialog alert = new AlertDialog.Builder(context).create(); 
          alert.setTitle("Updates"); 
          alert.setMessage("An updated version of the application is present.Do you wish to download."); 

          alert.setButton("OK", new DialogInterface.OnClickListener() { 
             public void onClick(DialogInterface dialog, int which) { 

            alert.dismiss(); 
             Intent i = new Intent(Intent.ACTION_VIEW); 
             i.setData(Uri.parse(upgrade.getURL().trim())); 
             startActivity(i); 
             finish(); 

            } }); 
          alert.setButton2("Cancel", 
             new DialogInterface.OnClickListener() { 
              public void onClick(
                DialogInterface dialog, 
                int which) { 
               return; 
              } 
             }); 

          alert.setIcon(R.drawable.application_icon_50x50); 
          alert.setCancelable(false); 
          alert.show(); 


          } 
         } 


        catch (NameNotFoundException e1) { 
         // TODO Auto-generated catch block 
         e1.printStackTrace(); 
        } 
       } 

Пожалуйста, направляйте свои предложения.

Спасибо заранее :)

ответ

2

Вы не можете отображать предупреждения и диалоги с помощью метода doInBackground(). us postProgress() и сделайте это в onProgressUpdate() или дождитесь, когда afterExecuted() выполнит эти действия из основного потока пользовательского интерфейса.

0

у вас есть finish() текущей деятельности перед показом оповещения. и вы тоже перешли на другую деятельность ... вот в чем проблема.

этот фрагмент кода. он появляется перед показом предупреждения.

Intent i = new Intent(Intent.ACTION_VIEW); 
i.setData(Uri.parse(upgrade.getURL().trim())); 
startActivity(i); 
finish(); 
+0

Извините, он был помещен для тестирования. Пожалуйста, проверьте код сейчас. Он отредактирован. – Remmyabhavan

Смежные вопросы