2012-06-14 3 views
2

Я хочу AsyncTask отправить SMS с учетом параметров. SMS отправляется правильно, но я хочу показать ProgressBar, пока не будет отправлено SMS, а затем выведет пользователя на новое действие. Я смотрел в Интернете на примерах, но я не мог понять, что я хочу делать с моим делом. Ниже приведено мое AsyncTaskИспользование ProgressBar с AsyncTask для отправки SMS | Android

public class sendSms extends AsyncTask<Void, Integer, Void>{    

     protected void onPreExecute() { 
      pb.setVisibility(View.VISIBLE); //pb is the ProgressBar 
      } 

     @Override 
     protected Void doInBackground(Void... params) { 
      SmsManager sms = SmsManager.getDefault(); 
      sms.sendTextMessage(phoneNumber, null, message, null, null);  
      return null;     
     } 

     protected void onProgressUpdate(Integer... progress){ 
      //Not sure what to do here 
     } 

     protected void onPostExecute(){ 
      Intent intn = new Intent(CurrentActivity.this, NewActivity.class); 
      startActivity(intn); 
     }   
} 

Я ценю любую помощь. Спасибо.

+0

не ответ на ваш вопрос, но ... вы не можете использовать 'this' в качестве первого параметра' Intent' в вашем (...) метод '' onPostExecute. Использование 'this' на самом деле относится к самой« AsyncTask », которая не расширяет« Context ». Если 'AsyncTask' определяется как внутренний класс' SomeActivity', тогда используйте 'SomeActivity.this'. – Squonk

+0

@Squonk: да, вопрос изменен. – Nerd

+0

@Nerd Вы нашли решение? –

ответ

0

проверьте исходный код.

public class sendSms extends AsyncTask<Void, Integer, String>{    

     protected void onPreExecute() { 
      pb.setVisibility(View.VISIBLE); //pb is the ProgressBar 
      } 

     @Override 
     protected Void doInBackground(Void... params) { 
      SmsManager sms = SmsManager.getDefault(); 
      sms.sendTextMessage(phoneNumber, null, message, null, null);  
      return "Done";     
     } 

     protected void onProgressUpdate(Integer... progress){ 
      //Not sure what to do here 
     } 

     protected void onPostExecute(String result){ 
if(result.equals("Done")) 
     { 
      pb.setVisibility(View.GONE); 
      Intent intn = new Intent(this, NewActivity.class); 
      startActivity(intn); 
} 
    }   

}

Я думаю, что это поможет вам.

Благодаря

+2

как вы можете добавить параметр 'String' в метод' onPostExecute', когда третий общий параметр 'Void'? – Sajmon

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