คำถามติดแท็ก android-runonuithread

3
คำเตือน: คลาส AsyncTask นี้ควรเป็นแบบคงที่หรืออาจเกิดการรั่วไหล
ฉันได้รับคำเตือนในรหัสของฉันที่ระบุว่า: คลาส AsyncTask นี้ควรเป็นแบบคงที่หรืออาจเกิดการรั่วไหล (android.os.As.TyncTask แบบไม่ระบุชื่อ) คำเตือนที่สมบูรณ์คือ: คลาส AsyncTask นี้ควรเป็นแบบสแตติกหรืออาจเกิดการรั่วไหล (android.os.As.TyncTask แบบไม่ระบุชื่อ) ฟิลด์แบบสแตติกจะรั่วบริบท ชั้นในแบบไม่คงที่มีการอ้างอิงโดยนัยถึงชั้นนอกของพวกเขา หากคลาสภายนอกนั้นเป็นตัวอย่าง Fragment หรือ Activity การอ้างอิงนี้หมายความว่าตัวจัดการ / ตัวโหลด / ภารกิจที่ใช้เวลานานจะมีการอ้างอิงถึงกิจกรรมที่ป้องกันไม่ให้ถูกรวบรวมขยะ การอ้างอิงฟิลด์โดยตรงกับกิจกรรมและแฟรกเมนต์จากอินสแตนซ์ที่ใช้เวลานานเหล่านี้อาจทำให้เกิดรอยรั่วได้ คลาส ViewModel ไม่ควรชี้ไปที่วิวหรือบริบทที่ไม่ใช่แอปพลิเคชัน นี่คือรหัสของฉัน: new AsyncTask<Void,Void,Void>(){ @Override protected Void doInBackground(Void... params) { runOnUiThread(new Runnable() { @Override public void run() { mAdapter.notifyDataSetChanged(); } }); return null; } …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.