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