私はAsyncTask
決して死ぬことのないものを持っています。このイベントのリスナーAsyncTask
は変化し続けます(ユーザーに表示されるアクティビティ/フラグメントによって異なります)。これを達成するために、私は次のような設定をしています:
- インターフェース:
public interface TaskListener { public void onItemChanged(String itemName) }
TaskListener
パブリックメソッドを使用して登録/登録解除されるメンバー変数を含むAsyncTask 。
public void registerListener(TaskListener listener) { mListener = listener; } public void unregisterListener() { mListener = null; }
- の
onPublishProgress()
メソッド(メソッドでviaと呼ばれるpublishProgress()
)doInBackground()
でAsyncTask
、リスナーに通知します。
さて、私の質問は、リスナーに通知している間、この状況に対する警告はありますか?特に、スレッドセーフかどうか知りたいです。つまり、publishProgress()
とregisterListener()
が同時に呼び出された場合、適切なリスナーはコールバックを受け取りますか?