정적 메서드가있는 유틸리티 클래스가 있습니다. 이러한 방법은 아래와 같은 백그라운드 작업, 뭔가를 해고 할 수 있다고 가정 :Android : Util 클래스 백그라운드 스레드가있는 정적 메서드 (비동기 작업)
class ExampleAsyncUtil {
public static void doSomeAsyncJob() {
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground (Void... params) {
//do heavy job here ...
return null;
}
}.execute();
}
}
을 그때 파괴된다 활동 내부의 폴더의 유틸리티 클래스 메서드를 호출 한 후 경우 :
class ExampleActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ExampleAsyncUtil.doSomeAsyncJob();
}
@Override
protected void onDestroy() {
//should i stop async task in util on destroy ?
super.onDestroy();
}
}
이 어떤 해를 하는가를? (백그라운드 스레드가 유틸리티 메소드를 호출 한 활동을 참조하지 않는다고 가정)
'Context'없이 AsyncTask를 만드는 타당한 이유가 있습니까? 당신이 그 문제를 사용자에게 할 수있는 것은 그리 많지 않습니다. 예제 단점 : 사용자가 활동을 종료하면 전체 프로세스가 먼저 죽습니다. 작업을 완료하려는 경우 중요합니다. 당신이 그 구조에 대한 당신의 이유를 제공한다면 나는 정교 할 수 있습니다. –
안녕하세요, 답변 주셔서 감사합니다. 예,이 경우 스레드가 될 수 있습니다. 하지만 왜 AsyncTask와 Docs의 Context를 연관시키는 것이 공통된 빈번한 쓰레드 처리 시나리오를 돕는 클래스 인 것 같다. –
컨텍스트와 연결할 필요가 없습니다. 당신의 다른 코멘트에서 스레드를 필요로하는 것처럼 보입니다.이 경우에는 '서비스'를 사용하십시오. 죽일 확률이 훨씬 적어서 살인을 처리 할 도구를 얻을 수 있습니다. 작업을 끝내기 위해 스레드가 필요하지 않으면 사용자의 배터리를 먹지 말고 중지하십시오. –