Android 用于标记异步任务已启动和完成的消息

Android 用于标记异步任务已启动和完成的消息,android,asynchronous,android-asynctask,android-lifecycle,Android,Asynchronous,Android Asynctask,Android Lifecycle,我的应用程序中有一个异步任务,当它完成时会触发一些事情,但当手机进入睡眠状态时,这会导致一些问题。当我回到应用程序时,我需要一种方法来知道异步任务完成了它的工作。我已经环顾了很多地方,但我想我的问题是我甚至不知道从哪里开始。任何信息都很有用。尝试在onpause方法中取消对话框片段。并在AsyncTask的onPostExecute()方法中检查布局是否对用户可见,如下所示: RelativeLayout root = (RelativeLayout)findViewById(R.id.root

我的应用程序中有一个异步任务,当它完成时会触发一些事情,但当手机进入睡眠状态时,这会导致一些问题。当我回到应用程序时,我需要一种方法来知道异步任务完成了它的工作。我已经环顾了很多地方,但我想我的问题是我甚至不知道从哪里开始。任何信息都很有用。

尝试在onpause方法中取消对话框片段。并在AsyncTask的onPostExecute()方法中检查布局是否对用户可见,如下所示:

RelativeLayout root = (RelativeLayout)findViewById(R.id.root);
root.isShown()//check if the layout is visible to user

此任务运行多长时间?也许你最好去做一个服务?它确实运行了很长一段时间。我认为我的问题是,在我的例子中,我在异步完成后忽略了一个对话框片段。因此,当我回来时(无论是睡觉还是按下home按钮,用户返回应用程序),都会出现混乱,因为我试图关闭片段对话框。你最好考虑使用服务。您可以向前台活动发送广播以关闭该对话框,并在活动的
onResume
中检查服务是否已完成。为什么不使用服务并在完成后广播消息,以便知道活动已完成?在您的活动中安装一个本地广播管理器以接收结果。很好的建议,我将研究服务。谢谢