我想实现一个将启动 AsyncTask 的服务。
在 AsyncTask onProgressUpdate() 中,我想更新主线程中的 TableLayout。
一切正常,但有一个疑惑:主线程被销毁或不可见,如何处理?
该服务将继续,直到它停止 self (),这就是我想要的。
但是 AsyncTask 怎么知道不更新 TableLayout?
最佳答案
我认为解决方案是通过 onResume() 和 onPause() 上的消息让服务知道主 Activity 何时可见或不可见。
服务将依次在 AsyncTak 中设置一个标志,当该标志为 false 时,onProgressUpdate() 将退出而不执行 UI 更新。
所以我想,如果我正确理解服务文档,我的服务将必须具有启动粘性并且还受同一 Activity 的约束。我只需要弄清楚如何重新绑定(bind)正在运行的服务。
关于从 Service 启动的 Android AsyncTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10823204/