内部クラスが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. Rubyインスタンス変数へのアクセス
- 2. スレッド内のクラスレベルの変数へのアクセス
- 3. フォームのタブページ内の変数へのアクセス
- 4. GUI内の変数へのアクセス
- 5. ローカル変数へのAsyncTaskの結果
- 6. プロトタイプメソッド内の無名関数内のインスタンス変数にアクセスする
- 7. CMake:BuildSetup.cmakeファイル内から変数へのアクセス
- 8. javascriptの関数内でインスタンス変数にアクセスしますか?
- 9. anomからのインスタンス変数へのアクセス。コーヒースクリプトの関数
- 10. 親関数からのインスタンス変数へのアクセス
- 11. インスタンス変数 '変数' クラスメソッドエラーでアクセス
- 12. コンソールでインスタンス内のクラス変数にアクセスできますか?
- 13. 変更されたクロージャへのアクセス
- 14. コンポーネントVMのメインVue.jsインスタンスからの変数へのアクセス
- 15. privateインスタンス変数はcompareTo内の "public"スコープでアクセス可能
- 16. ステートレスセッションBean内のインスタンス変数
- 17. ブロック内のインスタンス変数を変更する
- 18. インスタンス変数への直接アクセスとアクセッサメソッドの使用
- 19. スーパークラスのインスタンス変数へのアクセス、適切な形式
- 20. クラス内の関数内で宣言された変数へのアクセス(PHP)
- 21. インスタンス変数を使用せずにメソッドループ内の変数にアクセスするruby
- 22. Android - サービス変数へのアクセス
- 23. グローバル変数へのアクセス?
- 24. Symfony2ルート変数へのアクセス
- 25. C#変数へのアクセス
- 26. Angular2; typescript - 変数へのアクセス
- 27. へのアクセスJSP変数
- 28. Rspec - ソーサリーメソッド/変数へのアクセス
- 29. プライベート変数へのアクセス
- 30. 外変数へのアクセス