静的メソッドを持つユーティリティクラスがあります。これらのメソッドがバックグラウンドタスクを実行できると仮定すると、次のようになります。
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();
}
}
害はありますか?(バックグラウンドスレッドがユーティリティメソッドを呼び出したアクティビティへの参照を保持しないと仮定します)