2012-02-04 49 views
1

假設我有一個包含10個數字的ArrayList。雖然我通過從UI線程數組迭代,我發短信一樣:通過AsyncTask發送短信是否安全?

new smsAsyncTask().execute(new String[]{number,message}); 

public class smsAsyncTask extends AsyncTask <String,Void,Void>{ 

@Override 
    protected Void doInBackground(String... data) { 

      smsmanager.sendTextMessage(data[0], null, data[1], null, null); 

      return null; 

    } 

什麼我不知道如果所有的短信之前,用戶按下返回按鈕已發送,將在AsyncTasks與活動會死嗎?我應該使用ui線程而不是使用AsyncTasks發送,我希望ui儘可能快地停留。

+1

如果用戶退出承載'AsyncTask'的'Activity',那麼如果不清理properley(在'onPause())中,用於'doInBackground(...)'的線程可能會變成孤立的危險)'例如)。我可能會使用某種類型的Service(很可能是IntentService)而不是AsyncTask,或者直接由'Activity'託管的東西。 – Squonk 2012-02-04 23:06:39

回答

3

我也建議使用比異步任務更可靠的服務,異步任務取決於前臺的活動。