RoboSpiceライブラリを使用して非同期タスクを実行しました。彼らの例から、スパイス サービスは BaseActivity で宣言され、アクティビティの onStart メソッドで開始され、アクティビティの onStop メソッドで停止します。すべて問題ありませんが、インターネットからファイルをダウンロードしたいときに、別のアクティビティに変更すると、スパイス サービスが停止するため、このダウンロード タスクがキャンセルされます。次のようになります。
public abstract class BaseActivity{
/** The request manager. */
private SpiceManager requestManager = new SpiceManager(RequestService.class);
@Override
protected void onStart() {
requestManager.start(this);
super.onStart();
}
@Override
protected void onStop() {
requestManager.shouldStop();
super.onStop();
}
}
したがって、Spice サービスからダウンロード タスクを実行し続け (このタスクは UI に触れません)、別のタスクは正常に動作し (アクティビティを停止するとキャンセルできることを意味します)、安全な方法はあるのでしょうか。ライフサークル。