我想从片段的 onDestroy() 运行一个长时间的操作任务。我的目标是调用网络调用来删除一些数据,以防用户通过从最近的应用程序中滑动来关闭应用程序。我希望在调用 onDestroy() 时启动一个意图。
目前,每当我尝试启动意图时,我都会在有机会操作调用之前失去上下文,因为 onDestroy() 已经杀死了我的应用程序。
我不想使用这个选项:在 onDestroy 中执行长时间运行的操作,因为这样运行线程不是正确的方法,而且似乎是一种危险的黑客攻击。
从活动的 onDestroy() 调用操作会导致相同的错误。
当然,我不希望在 ui 线程上进行任何工作并“推迟” onDestroy() 直到我的操作完成。
只是为了清除,虽然 getContext() 不为空,但当我到达 SomeService 类时,上下文已经为空,因为发送意图是一个异步操作。
@Override
public void onDestroy() {
Intent intent = new Intent(getContext(), SomeService.class);
getContext().startService(intent);
super.onDestroy();
}