AsyncTask # doInBackground 내에서 Android 컨텍스트를 사용할 때 스레드 안전합니까? 컨텍스트는 생성자를 통해 또는 주변 Activity의 getApplicationContext()를 통해 제공됩니다. 이 간단한 질문은 stackoverflow에서 많은 질문을 받았지만 어디에서 명확한 대답을 찾지 못했습니까?안드로이드 컨텍스트 스레드가 안전합니까?
예. doInBackground()에서 DAO 클래스를 인스턴스화하기 위해 컨텍스트를 사용합니다.
@Override
protected Void doInBackground(Void... params) {
ExampleDao dao = new ExampleDao(context);
...
}
나는이 방법으로 그 일을 몇 가지 예를 보았다, 그러나 나는 상황이 지금 주요 트레드 (UI 스레드) 및 작업자 스레드에 의해 액세스 할 수 있기 때문에이, 스레드 안전하다는 이미지 수 없습니다.
좀 더 화를 잘 낼 수 있습니까? 정확히 무엇을하고 있습니까? –
왜 스레드 안전하지 않아야합니까? 작업자 스레드는 컨텍스트를 사용하여 파일 시스템에 액세스하고 UI 스레드는 모든 UI 관련 항목에 대한 컨텍스트를 사용합니다. 동일한 리소스 등에 액세스하는 혼합 호출에 문제가 없어야합니다. – Janusz