我有靜態方法的工具類。假設這些方法能火後臺任務,類似下面: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();
}
}
若我撥打活動內的Util類方法,然後成爲破壞:
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?對於用戶而言,沒有太多可以做的事情。下面的例子:如果用戶退出你的Activity,整個過程首先被殺死 - 如果你想讓你的任務完成這個任務就很重要。如果你提供你的理由,我可以詳細說明。 –
嗨,感謝您的回答,是的,在這種情況下,它可能是線程。但是爲什麼從文檔中將'AsyncTask'與'Context'聯繫起來,它似乎只是一個幫助常見的頻繁線程處理場景的類。 –
您不必將其與上下文關聯。從你的其他評論看來,你需要這個線程來完成它的工作 - 在這種情況下,使用一個「服務」 - 它不太可能被殺死,並且你得到了處理這些殺戮的工具。如果你不需要線程來完成它的工作,不要吃用戶的電池,並停止它:) –