2012-02-04 19 views
1

10個の数字を含むArrayListがあるとします。私は、UIスレッドからの配列を反復処理しながら、私のようなSMSを送信:AsyncTask経由でSMSを送信するのは安全ですか?

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; 

    } 

すべてのSMSの前にユーザーを押し、戻るボタンが送られてきた場合は、AsyncTasksが活動して殺される私は何をだろうか? AsyncTasksで送信する代わりにUIスレッドを使用する必要がありますが、UIをできるだけ速くします。

+1

ユーザーが 'AsyncTask'をホストしている' Activity'を終了すると、 'doInBackground(...)'のために使用されたスレッドが正しいアプリケーションをクリーンアップしないと孤立する危険性があります( 'onPause ) 'など)。おそらく、 'AsyncTask'や' Activity'によって直接ホストされているものではなく、何らかの種類のサービス(おそらく 'IntentService')を使用しています。 – Squonk

答えて

3

非同期タスクよりも信頼性の高いサービスを使用することをお勧めします。非同期タスクは、フォアグラウンドにあるアクティビティに依存します。

関連する問題