内部クラスがAと呼ばれるasynctaskを拡張し、外部クラスがアクティビティBを拡張するとします。 AのコードがアクティビティBのインスタンス変数にアクセスまたは変更するのはスレッドセーフですか?AsyncTask内のインスタンス変数へのアクセスまたは変更
0
A
答えて
1
いいえ、an AsyncTask runs in a separate thread AsyncTaskが実行されている間、ActivityとAsyncTaskの共有状態(この場合はインスタンス変数)の場合は、通常のスレッド同期を行う必要があります。
一般的には、onPublishProgress()
とonPostExecute()
を実装して、両方のメソッドがUIスレッドで実行されるため、AsyncTaskからActivityに状態をパブリッシュします。
1
synchronize
なしでインスタンスに直接アクセスする場合、コードはではなく、スレッドセーフです。 synchronize
を使用するか、単にonPublishProggress()
メソッドAsyncTask
のインスタンスにアクセスするだけです。
関連する問題
- 1. 配列内のインスタンス変数へのアクセス
- 2. Rubyインスタンス変数へのアクセス
- 3. メインクラスまたはメインメソッド内のインスタンス変数を変更します
- 4. あるインスタンスから別のインスタンスへのインスタンス変数へのアクセス
- 5. レールとルビのインスタンス変数へのアクセス
- 6. インスタンス変数の値へのアクセスscala
- 7. rspecのインスタンス変数へのアクセス
- 8. Rails + Vue:インスタンス変数へのアクセス
- 9. foreach内の変数とifループ内の変数へのアクセス
- 10. 関数内のグローバル変数へのアクセス
- 11. 関数内の行変数へのアクセス
- 12. タイムアウト関数内の変数へのアクセス
- 13. (C#)リスト内のオブジェクトへのアクセス/変更
- 14. オーバーライドされたメソッド内での子インスタンス変数の変更
- 15. 他のモジュールから変更された変数へのアクセス
- 16. フォームのタブページ内の変数へのアクセス
- 17. スレッド内のクラスレベルの変数へのアクセス
- 18. ローカル変数へのAsyncTaskの結果
- 19. GUI内の変数へのアクセス
- 20. ノード内のコンストラクター変数へのアクセス。 JS
- 21. Laravel:ファサード内の変数へのアクセス
- 22. テンプレート内のxslグローバル変数へのアクセス
- 23. * ngIf内のローカル変数へのアクセス
- 24. プロトタイプメソッド内の無名関数内のインスタンス変数にアクセスする
- 25. CMake:BuildSetup.cmakeファイル内から変数へのアクセス
- 26. Android:変数内外ループへのアクセス
- 27. 匿名クラス内ループ変数へのアクセス
- 28. Vueインスタンス内の変数を変更しますか?
- 29. javascriptの関数内でインスタンス変数にアクセスしますか?
- 30. anomからのインスタンス変数へのアクセス。コーヒースクリプトの関数